jQuery の興味深い動作を見ましたが、理由はわかりません。「修正」したため、実際には問題ではありませんが、これをあなたと共有したいので、コードを見てください。
switch(id){
case "1k":
check5k.attr('checked', false);
check10k.attr('checked', false);
check1k.attr('checked', true);
image1k.attr('class', 'radio-checked1k');
image5k.attr('class', 'radio5k');
image10k.attr('class', 'radio10k');
break;
case "5k":
check1k.attr('checked', false);
check10k.attr('checked', false);
check5k.attr('checked', true);
image1k.attr('class', 'radio1k');
image5k.attr('class', 'radio-checked5k');
image10k.attr('class', 'radio10k');
break;
case "10k":
check1k.attr('checked', false);
check5k.attr('checked', false);
check10k.attr('checked', true);
image1k.attr('class', 'radio1k');
image5k.attr('class', 'radio5k');
image10k.attr('class', 'radio-checked10k');
break;
}
だから、私がしようとするとalert($("input:checked").val())
、それは私に現在選択されているラジオの値を表示しますが、私がこれを好きなら:
switch(id){
case "1k":
check1k.attr('checked', true);
check5k.attr('checked', false);
check10k.attr('checked', false);
image1k.attr('class', 'radio-checked1k');
image5k.attr('class', 'radio5k');
image10k.attr('class', 'radio10k');
break;
case "5k":
check1k.attr('checked', false);
check5k.attr('checked', true);
check10k.attr('checked', false);
image1k.attr('class', 'radio1k');
image5k.attr('class', 'radio-checked5k');
image10k.attr('class', 'radio10k');
break;
case "10k":
check1k.attr('checked', false);
check5k.attr('checked', false);
check10k.attr('checked', true);
image1k.attr('class', 'radio1k');
image5k.attr('class', 'radio5k');
image10k.attr('class', 'radio-checked10k');
break;
}
そしてalert($("input:checked").val())
、10k id の値のみを表示し、他の値は未定義で表示されるようにします。10k は、この場合に true に設定された最後の値であるため、値を示しています。
なぜそれが起こるのですか?