堆叠:最后和:一起检查jQuery选择器

jet*_*mas 3 validation checkbox jquery checked

我正在尝试为复选框设置自定义验证.我有7个复选框,每个复选框都有相同的名称,我想确定是否检查了最后一个.这是我的代码,我知道它的错误,任何人都可以了解如何正确地堆叠:last和:checked selectors在一起?

$.validator.addMethod('ObserverOtherBox',function(v, e) {
   return ($('[[name="4_observers"]:last]:checked').length == 1) && ($('[name="4_observerstxt"]').length == 0) ;
}, 'Please enter the other observers');
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 10

你像这样堆栈选择器:

$('[name="4_observers"]:last:checked')
Run Code Online (Sandbox Code Playgroud)

只需将它们附加在一起,没有空格,这适用于所有选择器,无论是:

$('[name="4_observers"][id=4][rel=bob]')
// or:
$(':input:checkbox:last:checked')
Run Code Online (Sandbox Code Playgroud)

或者当然那些是可怕的实际选择器,但你明白了:)

另外,您可以像这样编写您的特定代码,我想更清楚一点:

$.validator.addMethod('ObserverOtherBox',function(v, e) {
  return $('[name="4_observers"]:last').is(':checked') 
      && $('[name="4_observerstxt"]').length == 0;
}, 'Please enter the other observers');
Run Code Online (Sandbox Code Playgroud)