これは私のjQueryスクリプトです:
$("input[type=radio]:checked").live("click", function() {
$(this).attr("checked",false);
});
すべてのラジオボタンをオンまたはオフにできるようにしたい。コードは、チェックされたラジオがクリックされたときにのみトリガーされることを想定しています。しかし、どういうわけか、ラジオのクリック(チェックされているかどうかに関係なく)がこのイベントをトリガーします。これは、ブラウザが最初にラジオをチェックしてからスクリプトを実行するかのようです。
私の場合alert($("input[type=radio]:checked").size())
、それは私に正しいカウントを与えました。
私はFF4でコードをテストしていますが、ソリューションがIEにも対応できることを願っています。
わかりました、私の質問は紛らわしいようですので、これは私が欲しいもののための動作するコードです、しかしそれは私が避けることができることを望む追加のカスタム属性を必要とします。
<input type="radio" name="group1" value="1" isChecked="false"/>
<input type="radio" name="group1" value="2" isChecked="false"/>
<input type="radio" name="group1" value="3" isChecked="false"/>
<script>
$(document).ready(function(){
$("radio").click(function(){
if($(this).attr("isChecked")=="false"){
$(this).attr("isChecked","true");
$(this).attr("checked",true);
}
else{
$(this).attr("isChecked","false");
$(this).attr("checked",false);
}
});
});
</script>