我的页面上有六个表格。我正在使用jQuery 2.02,JQM 1.3.1以及带有附加方法附加组件的jQuery Validate 1.12.0来尝试验证表单。当用户点击提交按钮时,我正在尝试使用此选择器来获取相关表单:
$('[id^=formEvent_]').validate({
效果很好......对于HTML中遇到的第一种形式(formEvent_assign
,请参阅下面的小提琴),换句话说,无论用户实际使用哪种形式,它总是选择第一种形式。
我试过
$('[id^=formEvent_]').closest('form').validate({
为表格EG设置变量:
var formPointer = "formEvent_terminate";
$('#' + formPointer).validate({
以及:
var formPointer = "#formEvent_terminate";
$(formPointer).validate({
这一切都没有,以及我在SO上发现的其他一些东西。我一直在努力工作几个小时,这看起来很简单。我可以在console.log
中看到正在创建正确的表单对象,我可以看到它的子节点(所有输入)等,但选择器不允许运行验证。
我应该使用哪个选择器,以便我可以让各个表单中的“提交”按钮正确运行验证?
以下列出了我已经阅读并尝试过的看似相关的SO问题,但最终由于某种原因无法开始工作:
Jquery validating a specific form on a page with multiple forms
this input submit selector with closest form submit
这是完整的验证码&如果表单有效,则调用提交例程:
$('[id^=formEvent_]').validate({
submitHandler: function ( form, event) {
isFormValid( form, event );
},
rules: {
pcbid_assign: {
required: true,
digits: true,
rangelength: [3, 6]
},
pcbid_terminate: {
required: true,
digits: true,
rangelength: [3, 6]
},
input_reason_terminate: {
required: true
},
input_assign_sbeJobNumber: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbeModelNumber: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbePN: {
require_from_group: [1, ".assign_group"]
},
input_assign_sbeSerialNumber: {
require_from_group: [1, ".assign_group"]
}
},
messages: {
pcbid_assign: "Please enter a valid PCBID with 3-6 digits.",
input_assign_sbeJobNumber: "Please enter a valid job number.",
input_assign_sbeModelNumber: "Please enter a valid model number.",
input_assign_sbePN: "Please enter a valid part number.",
input_assign_sbeSerialNumber: "Please enter a valid serial number.",
pcbid_terminate: "Please enter a valid PCBID with 3-6 digits.",
input_reason_terminate: "Please enter a reason for this PCBID board's termination."
}
});
以下是一些展示预期行为的小提琴(因为它们每个只有一个表单):
答案 0 :(得分:1)
如果提交按钮在表单内,您可以使用这个简单的“vanilla”JavaScript。
<input type="submit" value="Submit" onclick="$(this.form).validate();"/>
this.form
将始终为您提供包含的表单。
答案 1 :(得分:1)
您是否尝试使用.each()
方法?
像$('[id^=formEvent_]').each(function() { $(this).validate({....