使用jQuery验证插件验证数组输入 [英] Validating array inputs using jquery validation plugin
问题描述
我有以下表格.我正在尝试使用jquery验证插件来验证输入.我已经尝试了一些代码,但无法正常工作.当我单击提交"按钮时,它就进入表单的操作.
<form name="voucherform" action="something" method="post">
<input type="text" name="reg_number[]" value="" />
<input type="text" name="reg_number[]" value="" />
<input type="text" name="reg_number[]" value="" />
<input type="submit" name="submit" value="submit" />
您能告诉我如何使用jquery验证插件来验证上述表单吗?
谢谢:)
我的Jquery代码:
<script type="text/javascript" src="<?php echo base_url();?>support/datepicker/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>support/js/jquery.validate.js"></script>
<script>
$(document).ready(function() {
// validate signup form on keyup and submit
var validator = $("#voucherform").validate({
showErrors: function(errorMap, errorList) {
$(".errormsg").html($.map(errorList, function (el) {
return el.message;
}).join(", "));
},
wrapper: "span",
rules: {
reg_number[]: {
required: true,
minlength: 2,
remote: {
url: '<?php echo base_url();?>sales/invoice_check', async: false,
type: 'post'
},
}
},
messages: {
reg_number[]: {
required: "Enter Reg Number",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
},
}
});
});
</script>
您有两个问题:
-
您没有正确选择
form
元素.您正在寻找带有
id
"voucherform"的form
,并且您的标记不包含一个.您可能想将选择器更改为:$("form[name='voucherform']").validate({ ... });
-
括号(
[]
)在JavaScript标识符中无效.这意味着您的脚本未正确解析.要解决此问题,只需将其中带有方括号的字段括在引号中,即用'reg_number[]'
而不是reg_number[]
.
调整了验证代码:
var validator = $("form[name='voucherform']").validate({
showErrors: function(errorMap, errorList) {
$(".errormsg").html($.map(errorList, function(el) {
return el.message;
}).join(", "));
},
wrapper: "span",
rules: {
'reg_number[]': {
required: true,
minlength: 2,
remote: {
url: '<?php echo base_url();?>sales/invoice_check',
async: false,
type: 'post'
}
}
},
messages: {
'reg_number[]': {
required: "Enter Reg Number",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
}
}
});
示例: http://jsfiddle.net/hfrhs/ >
I have the following form. I am trying to validate the inputs using jquery validation plugin. I have tried some codes but its not working. When I click on the submit button it just goes to form's action.
<form name="voucherform" action="something" method="post">
<input type="text" name="reg_number[]" value="" />
<input type="text" name="reg_number[]" value="" />
<input type="text" name="reg_number[]" value="" />
<input type="submit" name="submit" value="submit" />
Could you please show me how to validate the above form using jquery validation plugin?
Thanks :)
My Jquery code:
<script type="text/javascript" src="<?php echo base_url();?>support/datepicker/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url();?>support/js/jquery.validate.js"></script>
<script>
$(document).ready(function() {
// validate signup form on keyup and submit
var validator = $("#voucherform").validate({
showErrors: function(errorMap, errorList) {
$(".errormsg").html($.map(errorList, function (el) {
return el.message;
}).join(", "));
},
wrapper: "span",
rules: {
reg_number[]: {
required: true,
minlength: 2,
remote: {
url: '<?php echo base_url();?>sales/invoice_check', async: false,
type: 'post'
},
}
},
messages: {
reg_number[]: {
required: "Enter Reg Number",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
},
}
});
});
</script>
You have two problems:
You aren't selecting the
form
element properly.You're looking for a
form
withid
"voucherform" and your markup does not contain one. You probably want to change your selector to:$("form[name='voucherform']").validate({ ... });
Brackets (
[]
) are not valid in JavaScript identifiers. This means that your script is not being parsed correctly. To resolve this, just wrap those fields that have brackets in them in quotes, i.e.'reg_number[]'
instead ofreg_number[]
.
Tweaked validate code:
var validator = $("form[name='voucherform']").validate({
showErrors: function(errorMap, errorList) {
$(".errormsg").html($.map(errorList, function(el) {
return el.message;
}).join(", "));
},
wrapper: "span",
rules: {
'reg_number[]': {
required: true,
minlength: 2,
remote: {
url: '<?php echo base_url();?>sales/invoice_check',
async: false,
type: 'post'
}
}
},
messages: {
'reg_number[]': {
required: "Enter Reg Number",
minlength: jQuery.format("Enter at least {0} characters"),
remote: jQuery.format("{0} is already in use")
}
}
});
Example: http://jsfiddle.net/hfrhs/
这篇关于使用jQuery验证插件验证数组输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!