首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Stacking :last and :checked jQuery选择器在一起

Stacking :last and :checked jQuery选择器在一起
EN

Stack Overflow用户
提问于 2010-04-08 03:28:19
回答 2查看 6.7K关注 0票数 3

我正在尝试为checkbox设置自定义验证。我有7个复选框,每个复选框都有相同的名称,我想确定最后一个是否被选中。这是我的代码,我知道它是错误的,有谁能解释一下如何正确地将:last和:checked选择器堆叠在一起?

代码语言:javascript
复制
$.validator.addMethod('ObserverOtherBox',function(v, e) {
   return ($('[[name="4_observers"]:last]:checked').length == 1) && ($('[name="4_observerstxt"]').length == 0) ;
}, 'Please enter the other observers');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-08 03:29:04

您可以像这样堆叠选择器:

代码语言:javascript
复制
$('[name="4_observers"]:last:checked')

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

代码语言:javascript
复制
$('[name="4_observers"][id=4][rel=bob]')
// or:
$(':input:checkbox:last:checked')

当然,这些都是很糟糕的实际选择器,但是你明白了:)

另外,您可以像这样编写您的特定代码,我认为这样会更清晰一些:

代码语言:javascript
复制
$.validator.addMethod('ObserverOtherBox',function(v, e) {
  return $('[name="4_observers"]:last').is(':checked') 
      && $('[name="4_observerstxt"]').length == 0;
}, 'Please enter the other observers');
票数 10
EN

Stack Overflow用户

发布于 2014-02-14 08:04:33

谢谢,它起作用了。我没有使用is(':checked'),而是使用了.prop('checked'),

代码语言:javascript
复制
        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();
            }
        });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2595282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档