我想,以验证其与jQuery验证两个相同名字的输入..
<script src='
http://code.jquery.com/jquery-latest.min.js '></script>
<script src='http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js'></script>
<script>
$(document).ready(function(){
$('#frm').validate();
$("[name=inp_text]").each(function(){
$(this).rules("add", {
required: true,
checkValue: true
});
});
$.validator.addMethod("checkValue", function(value, element) {
var response = ((value > 0)&&(value <= 100))||((value == 'test1')||(value =='test2'));
return response;
}, "invalid value");
})
</script>
<form id='frm' method='post'>
<input type='text' name='inp_text'/><br>
<input type='text' name='inp_text'/><br>
<input type='submit' name=''/>
</frm>
但是当我运行这段代码只验证第一输入和第二输入被完全忽略
我已经使用也尝试<input type='text' name='inp_text[]'/><br>
但仍然没有工作。
我应该怎么改...?
提前致谢
“我想,以验证其与jQuery验证两个相同名字的投入......”
<input type='text' name='inp_text'/>
<input type='text' name='inp_text'/>
“但是当我运行这段代码只验证第一输入和第二输入被简单地忽略”
你不能有两个input
字段type="text"
具有相同name
或该插件将无法正常工作。 该name
的属性必须是唯一的。 (有一个例外,在name
是唯一的,是的复选框或单选输入“分组”将共享相同的name
与对应的提交是数据的单个点,但是, name
仍然必须是唯一的复选框和单选的每个分组元素。)
“我应该改变......”
使每name
特有的属性。
<input type='text' name='inp_text[1]'/>
<input type='text' name='inp_text[2]'/>
然后使用“开始与”选择, ^=
...
$("[name^=inp_text]").each(function () {
$(this).rules("add", {
required: true,
checkValue: true
});
});
工作演示: http://jsfiddle.net/PgLh3/
注意 :您还可以通过目标元素id
使用时rules('add')
的方法,但是这种情况下,没有什么不能解决的,因为插件仍需要一个独特的 name
每个上input
元素。
添加配置类似像规则或消息如下
multipleInputSharedName: {
inp_text: true
}
在jquery.validate.js方法名称更改代码:元素
替换以下
if ( this.name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {
return false;
}
具有以下
if ( (!validator.settings.multipleInputSharedName[this.name] && this.name in rulesCache) || !validator.objectLength( $( this ).rules() ) ) {
return false;
}
是的,jQuery验证只能验证一次出现。 您使用文本框不同的名称。 或者您可以使用相同的名称,但不同的ID。 并根据ID申请检查。
$( “#myForm会”)验证({规则:{#id_of_field:{要求:真实,校验值:真}}});
朋友们!
具有相同的名称,以验证该文本框/复选框/选择使用它是为我工作的罚款以下。
这里ctryId'是选择框中的名称。
function validateCountry(){
inp = document.getElementsByTagName("select");
for ( var i = 0; i < inp.length; ++i ) {
if (inp[i].name =="ctryId" && inp[i].value==''){
alert('plesae select a country!');
return false;
}
}
return true;
}
这里MINVAL'是文本框的名称
function validateMinimumVal(){
inp = document.getElementsByTagName("TEXT");
for ( var i = 0; i < inp.length; ++i ) {
if (inp[i].name =="minVal" && inp[i].value==''){
alert('plesae Add a MINIMUM VALUE!!');
return false;
}
}
return true;
}
希望这可以帮助!! 贾根
文章来源: validating multiple textbox having same name with jquery validator validates only first input