J'utilise le plug-in jQuery UI sortables pour autoriser la réorganisation de certains éléments de la liste. À l'intérieur de chaque élément de la liste, j'ai quelques boutons radio qui permettent à l'élément d'être activé ou désactivé.Les boutons radio sont désélectionnés lorsque vous faites glisser l'élément à l'aide de jQuery Sortables
Lorsque l'élément est déplacé, les deux boutons radio sont désélectionnés, ce qui ne semble pas être le cas. Est-ce un comportement correct, et sinon, quelle est la meilleure façon de contourner cela?
Voici un exemple de code montrant ce problème:
<!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>
Dès qu'un élément de la liste est saisi avec la souris, les deux boutons radio se décochées. Si cela est un bug, une solution de contournement consisterait à sélectionner automatiquement le bouton d'option 'enabled' lorsque l'élément est déplacé, donc tout conseil sur la façon d'y parvenir serait également très apprécié. Mise à jour: J'ai testé cela dans FireFox 3, Internet Explorer 7, Opera 9.5 et Safari 3.1.2, tous sur Windows XP x64, et ce problème se produit dans chacun d'entre eux.
goûtés FF3, IE7 et Chrome et fonctionne de la même. Les boutons radio sont effacés (FF et chrome) ou réinitialisés (IE7) – Serxipc
Il semblerait que cela dépende de votre version de jquery.ui. J'obtiens les mêmes résultats que toi quand j'utilise 1.5.2, mais j'obtiens juste le contraire avec 1.6rc2 (boutons radio effacés en FF et chrome en utilisant helper et persiste en utilisant un espace réservé). IE ne semble pas fonctionner de toute façon pour moi non plus. –
Vous avez raison. Avec 1.6rc2, la valeur par défaut est de copier l'élément innerHtml dans l'espace réservé. La définition de l'option d'espace réservé sur une chaîne non vide remplace ce comportement. – Serxipc