检查是否已选中复选框

时间:2013-09-13 15:42:21

标签: jquery

我正在开发一个动态添加一些表单域(包括复选框)和相关(jquery)验证规则的网站。更新(澄清):对于某些验证,我需要动态添加验证方法(在创建相关的表单字段之后)。该问题涉及用于确定是否需要该字段的验证代码。如果已设置复选框,则应该需要该字段。添加的验证规则适用于验证'minlength','maxlength'和'integer',但不适用于'required'。我想我明白为什么我在'required'上验证的代码不起作用(因为listitem)但是我不知道如何更正这段代码......

(我查看了此网站上的相关主题以及http://api.jquery.com/checked-selector/

用于添加复选框表单字段的javascript代码元素(增加listitemnr ...):

<input type="checkbox" id="check'+ listitem +'" name="productselection'+ listitem +'" value="' + this.productid[listitem] + '">

更新:检查代码添加验证方法,其中包括用于检查的复选框:

if ($("#nrofparts"+listitem).length > 0) { //elements exists?
                    //console.log("added VAL: "+listitem);
                    $("#nrofparts"+listitem).rules("add", { 
                        required: function(element) {return ($('#check'+listitem).is(':checked') );},
                        minlength: 1,
                        maxlength: 3,
                        integer:true, 

                    }
                ); //$("#investmentfix"+currindex).rules add

3 个答案:

答案 0 :(得分:0)

试试:

if ( $('#check' + listitem).is(':checked') ) {}

答案 1 :(得分:0)

您可以查看:checked用法。它匹配所有检查的输入元素(除了select

if ($('#check' + listitem).is(':checked')) {
    // your code here.
}

答案 2 :(得分:0)

你没有使用委托。所以我猜你得到它为零。正如你所说,你要动态加载一些内容,每当你动态加载页面上的内容时你需要使用.on( )例如:$('')。on('click',function_name);以下代码将帮助您。

      var countChecked = function() {
        var n = $( "input:checked" ).length;
         $( "div" ).text( n + " checked!" );
      };

      $( "input[type=checkbox]" ).on( "click", countChecked );

这是小提琴 Demo