我的單選按鈕上有一個點擊監聽器。如何檢查一個單選按鈕是否已被點擊後被選中?
我需要檢查一個單選按鈕是否已在點擊之前檢查過,或者它是否沒有。
$('.GridRadio').live('click', function() {
alert($(this).is(':checked'));
});
但是,上述警告每次都是正確的。如何在點擊之前查看它是否已被檢查?
我的單選按鈕上有一個點擊監聽器。如何檢查一個單選按鈕是否已被點擊後被選中?
我需要檢查一個單選按鈕是否已在點擊之前檢查過,或者它是否沒有。
$('.GridRadio').live('click', function() {
alert($(this).is(':checked'));
});
但是,上述警告每次都是正確的。如何在點擊之前查看它是否已被檢查?
你可以使用data()
存儲電臺的前值,然後檢查針對當前值:
$(".GridRadio").click(function() {
var lastValue = $(this).data("last-value");
var value = $(this).val();
if (lastValue == value) {
alert("Already checked");
}
else {
alert("Not previously checked");
}
$(".GridRadio").data("last-value", "");
$(this).data("last-value", value);
});
如果設置了checked
屬性上的無線電中的一個HTML在頁面加載時,添加此代碼以設置該特定的data
:
$(".GridRadio:checked").data("last-value", $(".GridRadio:checked").val())
如果它從未被點擊過,但是被設置爲在html中檢查,該怎麼辦? – 2012-02-16 09:56:21
@RichardD好點 - 我已經更新了答案和小提琴 – 2012-02-16 09:59:09
似乎是最好的解決方案,+1 – 2012-02-16 10:02:28
如果您使用的是live
,則可能在$(document).ready
之後附加$('.GridRadio')
。如果這是正確的 - 你可以做這個檢查,當你追加它。 然後當它被點擊 - 它將永遠是負值。
(如果它是從一開始的頁面 - 你可以這樣做檢查,一旦重新加載頁面,有人點擊它。)
您可以訂閱改變,而不是點擊,你知道的方式它沒有被檢查過,但你不會觸發事件時,你點擊已被檢查的事件 - http://jsfiddle.net/AXfdy/ – 2012-02-16 09:58:19
NB:恕我直言,如果你需要這樣做,那麼你的東西有問題GUI概念。 – RoToRa 2012-02-16 09:58:49