我正在尝试为checkbox设置自定义验证。我有7个复选框,每个复选框都有相同的名称,我想确定最后一个是否被选中。这是我的代码,我知道它是错误的,有谁能解释一下如何正确地将:last和:checked选择器堆叠在一起?
$.validator.addMethod('ObserverOtherBox',function(v, e) {
return ($('[[name="4_observers"]:last]:checked').length == 1) && ($('[name="4_observerstxt"]').length == 0) ;
}, 'Please enter the other observers');发布于 2010-04-08 03:29:04
您可以像这样堆叠选择器:
$('[name="4_observers"]:last:checked')只需将它们附加在一起,没有空格,这对所有选择器都有效,无论是:
$('[name="4_observers"][id=4][rel=bob]')
// or:
$(':input:checkbox:last:checked')当然,这些都是很糟糕的实际选择器,但是你明白了:)
另外,您可以像这样编写您的特定代码,我认为这样会更清晰一些:
$.validator.addMethod('ObserverOtherBox',function(v, e) {
return $('[name="4_observers"]:last').is(':checked')
&& $('[name="4_observerstxt"]').length == 0;
}, 'Please enter the other observers');发布于 2014-02-14 08:04:33
谢谢,它起作用了。我没有使用is(':checked'),而是使用了.prop('checked'),
var lastCheckBox = $('[name="LastCheckboxId"]:last');
//onload
$(".someDiv").hide();
if (lastCheckBox .prop('checked')) {
$(".someDiv").show();
}
//onchange
lastCheckBox.change(function () {
if ($(this).prop('checked')) {
$(".someDiv").show();
} else {
$(".someDiv").hide();
}
});https://stackoverflow.com/questions/2595282
复制相似问题