2016-05-26 19 views
2

ラジオボタンを作成して、値をチェックしないようにしたいとします。だから私は、コードを作成しました:クリックしてラジオをチェックしないでください

$('form').on('click', 'input[type="radio"]:checked', function (event) { 
    $(this).prop("checked", false); 
}); 

まあ、これは非常に簡単です:それのチェックを外し、点検ラジオをクリックしてください。

しかし、どうしても最初にラジオをチェックすることはありません。チェックされていないラジオをクリックすると、チェックされているかどうかを確認する前にチェックされ、チェックされたとみなされ、チェックが外されます。

これは別の質問をしているので、これは重複していません。これはチェックを外す方法ではなく、クリックすると自動的にチェックを外す方法です。

この問題を回避するにはどうすればよいですか?

+3

? – Azim

+0

それは排他的なオプションです – raphadko

+2

ここはフィドルです。重複して作成されているので返答できません... https://jsfiddle.net/1ykm4n18/1/ – Patrick2607

答えて

-1

この例は、ボタンをクリックしたときにのみ実行されます。ページが読み込まれたときにラジオボタンをチェックするには、ボタンの値をチェックするように設定するイベントを$(document).onload()とします。

0

次のように問題を解決できます。チェックボックスを使用していないのはなぜ

$('form :radio').attr('data-ischecked', function() { 
 
    return this.checked; 
 
}); //set initial status in data-ischecked attribute 
 

 
$('form').on('click', ':radio', function() { 
 
    var status = $(this).data('ischecked'); //get status 
 
    status && $(this).prop("checked", false); //uncheck if checked 
 
    $(this).data('ischecked', !status); //toggle status 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input type="radio"/> 
 
    <input type="radio"/> 
 
</form>

関連する問題