1

我正在开发一个动态添加一些表单域(包括复选框)和相关(jquery)验证规则的网站。更新(澄清):对于某些验证,我需要动态添加验证方法(在创建相关表单字段之后)。该问题与用于确定该字段是否必需的验证代码有关。如果已设置复选框,则该字段应为必填项。添加的验证规则适用于验证“minlength”、“maxlength”和“integer”,但不适用于“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
4

3 回答 3

0

只需尝试:

if ( $('#check' + listitem).is(':checked') ) {}
于 2013-09-13T15:56:38.677 回答
0

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

if ($('#check' + listitem).is(':checked')) {
    // your code here.
}
于 2013-09-13T15:58:19.303 回答
0

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

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

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

这是小提琴演示

于 2013-09-13T16:26:01.207 回答