Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击单选按钮后,如何检查该按钮是否已被选中?_Javascript_Jquery - Fatal编程技术网

Javascript 单击单选按钮后,如何检查该按钮是否已被选中?

Javascript 单击单选按钮后,如何检查该按钮是否已被选中?,javascript,jquery,Javascript,Jquery,我的单选按钮上有一个单击侦听器 我需要检查单选按钮在单击之前是否已被选中,或者是否未被选中 $('.GridRadio').live('click', function () { alert($(this).is(':checked')); }); 但是,上述警报每次都是真实的。如何查看在单击之前它是否已被选中?您可以使用data()存储收音机的先前值,然后对照该值检查当前值: $(".GridRadio").click(function() { var lastValue =

我的单选按钮上有一个单击侦听器

我需要检查单选按钮在单击之前是否已被选中,或者是否未被选中

$('.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);
});

如果在页面加载时在HTML中的一个收音机上设置了
checked
属性,请添加此代码以设置该特定收音机的
数据

$(".GridRadio:checked").data("last-value", $(".GridRadio:checked").val())

如果您使用的是
live
,您可能会在
$(document.ready
之后追加
$('.GridRadio')
。如果这是正确的-您可以在附加它时执行此检查。 然后,当它被单击时,它将始终是负值


(如果它从一开始就在页面中,您可以在重新加载页面后,在有人单击它之前进行此检查。)

如果它从未被单击,但在html中被设置为“已签入”该怎么办?似乎是最好的解决方案,+1单击一个单选按钮,单击另一个单选按钮,然后单击返回到第一个单选按钮显示“已检查”警报,我觉得这似乎不正确。在调用
$(this).data(“last value”,value)之前,清除所有
.GridRadio
元素上的“last value”数据属性应该可以解决这个问题。谢谢Anthony,更新了。这个解决方案一分钟比一分钟难看。我在GridRadio类中有多组单选按钮。这是一个问题。我认为,$(“.GridRadio”).data(“最后一个值”);除了当前组之外,其他所有组都会出现问题,因为没有最后一个值?您可以订阅更改而不是单击,这样您就知道以前没有检查过更改,但当您单击已检查的组时,您不会触发事件-注意:如果需要这样做,那么您的GUI概念就有问题了。