首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查是否选中复选框时出现错误“value.is不是函数”

检查是否选中复选框时出现错误“value.is不是函数”
EN

Stack Overflow用户
提问于 2013-05-15 07:35:22
回答 4查看 90关注 0票数 1

我试图确保组中至少有一个复选框始终保持选中,但我遇到了困难。

我有多个复选框,其名称以post_type[开头。该函数为on('change')调用运行得很好,当我检查输入是否是选中的复选框时,问题就会发生,在这里我会得到以下错误。

value.is不是一个函数

有人能帮我排除我的代码吗?谢谢。

代码语言:javascript
复制
$(document).ready(function($){

    $('input[name^="post_type["]', '#site-search').on('change', function(){

        var checks = $('input[name^="post_type["]');
        var one_checked = is_one_checked(checks);

        if(one_checked === false){
            $(this).attr('checked', 'true');
        }

    });

});

function is_one_checked(checks){

    var checked = false; // Wheteher or not at least one box is checked (false by default)

    $(checks).each(function(key, value){
        if(value.is(':checkbox') && value.is(':checked')){
            checked = true;
        }
    });

    return checked;

}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-15 07:45:23

value.is(':checked')不能工作的原因是,在循环中,value作为原始DOM对象传递。.is()是一个jQuery方法,因此您必须将value包装在jQuery对象中才能使用它:

$(value).is(':checked')

票数 1
EN

Stack Overflow用户

发布于 2013-05-15 07:38:05

试着这样做:

代码语言:javascript
复制
 $(checks).each(function(key, value){
    if($(this).is(':checkbox') && $(this).is(':checked')){
        checked = true;
    }
});
票数 1
EN

Stack Overflow用户

发布于 2013-05-15 07:38:25

在循环中使用$(this)而不是value

代码语言:javascript
复制
$(checks).each(function(key, value){
    if($(this).is(':checkbox') && $(this).is(':checked')){
        checked = true;
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16559313

复制
相关文章

相似问题

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