2016-05-26 85 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>

相關問題