jQuery UI sortablesプラグインを使用して、リスト項目の並べ替えを許可しています。各リスト アイテム内には、アイテムを有効または無効にできるラジオ ボタンがいくつかあります。
アイテムがドラッグされると、両方のラジオ ボタンの選択が解除されますが、これは起こるべきではないようです。これは正しい動作ですか?そうでない場合、これを回避する最善の方法は何ですか?
この問題を示すコード サンプルを次に示します。
<!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>
リスト項目をマウスでつかむとすぐに、両方のラジオ ボタンの選択が解除されます。
これがバグである場合、回避策の 1 つは、アイテムが移動されたときに [有効] ラジオ ボタンを自動的に選択することです。
更新: Windows XP x64 上の FireFox 3、Internet Explorer 7、Opera 9.5、および Safari 3.1.2 でこれをテストしましたが、この問題はすべての環境で発生します。