xtcommerceベースの回避策で多くのラジオボタンを使用しています。これらのラジオボタンは動的に作成され、次のようにグループごとに異なる名前が付けられます。
<input type="radio" name="id[1]" value="40">
<input type="radio" name="id[1]" value="30">
<input type="radio" name="id[1]" value="20">
<input type="radio" name="id[1]" value="10">
<input type="radio" name="id[2]" value="40">
<input type="radio" name="id[2]" value="30">
<input type="radio" name="id[2]" value="20">
<input type="radio" name="id[2]" value="10">
<input type="radio" name="id[3]" value="10">
....
次に、これらのラジオボタンを「グループ化」して、一度に1つのラジオボタンしか選択できないようにします。これで、デフォルトで、各「グループ」のすべての最初のラジオボタン(name = "id [1]"、name = "id [2]"など)が事前に選択され、各ラジオボタンのすべての値が送信されます。
私はこのスクリプトをstackoverflowで見つけ、1つのラジオボタンのみを選択しました。
$(document).ready(function () {
$('input[type=radio]').prop('checked', false);
$('input[type=radio]:first').prop('checked', true)
$('input[type=radio]').click(function (event) {
$('input[type=radio]').prop('checked', false);
$(this).prop('checked', true);
event.preventDefault();
});
});
これがそのフィドルです:
これは今のところ機能します。ページで選択できるラジオボタンは1つだけです。しかし、私のjs-fiddleにも見られるように、1つの問題があります。
最初のグループの最初のラジオボタンは事前に選択されています-それで問題ありません。ただし、同じグループの別のラジオボタンを選択した場合、選択-「マーク」は変更されません。別のグループのラジオボタンをクリックした場合にのみ、選択したラジオボタンが選択されます(FF (編集:およびOperaとIE9)で別のバグが見つかりました)、他のラジオボタンを選択した場合、選択マークは表示されません; Chromeでは、別のグループを選択すると変更されます)。この同じグループにとどまる場合、選択も変更されません。
ローカルベースのインストールでは、動的に変化するアップデーターがあり、選択したアイテムの新しい価格が示されます(申し訳ありませんが、これをフィドルに実装できませんでした)。これはこれまでのところ機能し、同じグループの別のラジオボタンを選択しても価格は更新されますが、選択の前に説明したように、「マーク」は変更されません...
この問題のアイデアはありますか?