Estoy usando el complemento jQuery UI sortables para permitir el reordenamiento de algunos elementos de la lista. Dentro de cada elemento de la lista, tengo un par de botones de opción que permiten activar o desactivar el elemento.Botones de radio que se anulan al arrastrar elementos usando jQuery Sortables
Cuando se arrastra el elemento, se anula la selección de ambos botones de radio, lo que no parece que deba suceder. ¿Es este comportamiento correcto, y si no, cuál es la mejor manera de evitar esto?
Este es un ejemplo de código que muestra este problema:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>jQuery Sortables Problem</title>
<script src="jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="jquery-ui.min.js" type="text/javascript"></script>
<style type="text/css">
.items
{
margin-top: 30px;
margin-left: 0px;
padding-left: 25px;
cursor: move;
}
.items li
{
padding: 10px;
font-size: 15px;
border: 1px solid #666;
background: #eee;
width: 400px;
margin-bottom: 15px;
float: left;
clear:both;
}
</style>
</head>
<body>
<ol id="itemlist" class="items">
<li id="1" class="item">
Item 1
<input name="status_1" type="radio" value="1" checked="checked" />enabled
<input name="status_1" type="radio" value="0" />disabled
</li>
<li id="2" class="item">
Item 2
<input name="status_2" type="radio" value="1" checked="checked" />enabled
<input name="status_2" type="radio" value="0" />disabled
</li>
<li id="3" class="item">
Item 3
<input name="status_3" type="radio" value="1" checked="checked" />enabled
<input name="status_3" type="radio" value="0" />disabled
</li>
<li id="4" class="item">
Item 4
<input name="status_4" type="radio" value="1" checked="checked" />enabled
<input name="status_4" type="radio" value="0" />disabled
</li>
</ol>
<script type="text/javascript">
$('#itemlist').sortable();
</script>
</body>
</html>
Tan pronto como un elemento de la lista se agarró con el ratón, tanto los botones de radio desmarcará.
Si se trata de un error, una solución alternativa sería seleccionar automáticamente el botón de opción 'activado' cuando se mueve el elemento, por lo que cualquier consejo sobre cómo lograr esto también sería muy apreciado.
Actualización: He probado esto en FireFox 3, Internet Explorer 7, Opera 9.5 y Safari 3.1.2, todo en Windows XP x64, y este problema ocurre en todos ellos.
juzgado en FF3, IE7 y Chrome y funciona de la misma. Los botones de radio se borran (FF y cromo) o se reinician (IE7) – Serxipc
Parece que depende de su versión de jquery.ui. Obtuve los mismos resultados que cuando uso 1.5.2, pero obtengo exactamente lo opuesto con 1.6rc2 (los botones de radio se borran en FF y Chrome usando helper y persisten usando marcador de posición). IE no parece funcionar de ninguna manera para mí ya sea. –
Tienes razón. Con 1.6rc2, el valor predeterminado es copiar el elemento innerHtml en el marcador de posición. Establecer la opción de marcador de posición a cualquier cadena no vacía anula este comportamiento. – Serxipc