请使用下面的jQuery验证代码考虑简单表单。不知怎的,我(仍然)对规则的语法出错了,因为验证不能以这种方式工作(当我在此主题上检查了stackoverflow上的一些站点时)。如何使用数组正确描述规则?
请你的帮助。
代码:
<form id="myForm" name="myForm" action="" method="post" autocomplete="on">
<label class="field2" for="productname[0]"> Product name 1 </label> <input id="productname[0]" type="text" name="productname[0]"> <br>
<label class="field2" for="productname[1]"> Product name 2 </label> <input id="productname[1]" type="text" name="productname[1]"> <br>
<input type="submit" name="submitForm" value="Submit Form">
<script src="js/jquery-1.10.1.min.js"></script>
<script src="js/jquery.validate.js"></script>
<script>
$(function() {
$("#myForm").validate({
rules: {
'productname[]': {
required:true,
minlength: 2,
maxlength: 30,
}
} //rules
}); //validate()
}); //function
</script>
</body>
答案 0 :(得分:2)
我不知道你的后端是什么样的,但是不需要命名字段[0]和[1]
<label class="field2" for="productname_1"> Product name 1 </label> <input id="productname_1" type="text" name="productname[]"> <br>
<label class="field2" for="productname_2"> Product name 2 </label> <input id="productname_2" type="text" name="productname[]"> <br>
以上内容应该足够了,并且可以使用验证。服务器很可能会负责将后查询字符串转换为数组。
答案 1 :(得分:0)
似乎问题在于你的HTML标记。尝试修改:
<label class="field2" for="productname[0]"> Product name 1 </label> <input id="productname[0]" type="text" name="productname[]"> <br />
<label class="field2" for="productname[1]"> Product name 2 </label> <input id="productname[1]" type="text" name="productname[]"> <br />