坦率地说,考虑到解决方案的简单性,这个问题还没有得到正确回答的事实有点愚蠢。简单(和文明)的方法是在用户每次切换选项卡时调用验证,为此,您只需将选项卡设置为:
如果您有以下跨多个选项卡的表单...
<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/
干杯! :-)