编辑响应:
你要找的更容易!!!如果您只是想验证用户当前所在选项卡上的字段而不限制他们转到其他选项卡,那么在激活我提供的部分代码之前忽略选项卡,并初始化您的 jQuery 验证引擎以忽略验证不可见字段是所有非活动标签的内容。您的代码如下所示:
jQuery("#myForm").validationEngine('attach', {
promptPosition: "bottomLeft",
validationEventTrigger: "submit",
validateNonVisibleFields: false // this does the trick!
});
这是用于说明示例的新 JSFiddle:http: //jsfiddle.net/T7daH/
干杯! :-)
-------------------------------------------------- ----- 原始答案 -------------------------------------------------------- ----------
实际上,有一种非常简单的方法可以使用跨越多个选项卡的表单来实现 jQuery 验证引擎,而无需以编程方式触发每个字段或选项卡单击的验证。
如果您有以下跨多个选项卡的表单...
<form id="myForm" action="">
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a>
</li>
<li><a href="#tabs-2">Tab 2</a>
</li>
<li><a href="#tabs-3">Tab 3</a>
</li>
</ul>
<div id="tabs-1">
<input type="text" id="requiredFiled" name="requiredField" class="validate[required]" />
</div>
<div id="tabs-2"></div>
<div id="tabs-3"></div>
</div>
然后你像这样设置表单和选项卡:
jQuery("#myForm").validationEngine('attach', {
promptPosition: "bottomLeft",
validationEventTrigger: "submit",
validateNonVisibleFields: true,
updatePromptsPosition: true
});
$(function () {
$("#tabs").tabs({
beforeActivate: function (event, ui) {
if (!$("#myForm").validationEngine('validate')) {
event.preventDefault();
$('#myForm').validationEngine('hide');
setTimeout(function () {
$("#myForm").validationEngine('validate');
}, 450);
}
}
});
});
结果是如果用户当前所在的选项卡不完全有效,则用户无法选择另一个选项卡。这是 JSFiddle 演示:http: //jsfiddle.net/g9yLL/36/
干杯! :-)