我正在开发一个动态添加一些表单域(包括复选框)和相关(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
答案 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