【发布时间】:2011-12-09 08:59:19
【问题描述】:
目前的 jQuery 验证插件,仅验证选定的选项卡。因此,为了使所有选项卡都得到验证,我引入了忽略属性
$("form").validate({
....
....
ignore:"ui-tabs-hide"
});
但是在给出这个之后,它甚至可以验证隐藏的字段。有没有办法通过仅忽略每个选项卡上的隐藏字段来验证所有选项卡上的字段。
html
<div id="tabs">
<%@include file="inc/tabsList.jsp" %> <!--has <a> link for each div -->
<div id="fragment-1"><%@include file="inc/tradeDetails.jsp" %></div>
<div id="fragment-2"><%@include file="inc/beneficiaryDetails.jsp" %></div>
<div id="fragment-3"><%@include file="inc/referenceDetails.jsp" %></div>
<div id="fragment-4"><%@include file="inc/summary.jsp"%></div>
<div class="clear"></div>
</div>
JavaScript
$(function() {
var hiddenChevron;
var $tabs = $('#tabs').tabs();
$("#fWdErrors_940").hide();
$("#singleSpotForm").validate({
rules: {
'singleSpotRequestVO.entity.entityName' : "required",
'singleSpotRequestVO.subEntity.entityName' : "required",
'singleSpotRequestVO.transactionType' : "required",
'singleSpotRequestVO.tradeCurrencyId' : "required"
},
errorContainer: 'fWdErrors_940',
errorClass: "errorMsgItemText",
errorPlacement: function(error, element) {
error.appendTo( element.parent("td").last() );
},
invalidHandler: function(form, validator) {
var errors = validator.numberOfInvalids();
if(errors){
var message = validator.numberOfInvalids() == 1 ?
validator.numberOfInvalids() + " error " :
validator.numberOfInvalids() + " errors ";
$(".failureErrCount").html( message );
$("#fWdErrors_940").show().focus();
}else{
$("#fWdErrors_940").hide();
}
},
onkeyup : false,
ignore: "ui-tabs-hide"
});
})
【问题讨论】:
-
只要所有输入元素都在一个表单中,验证插件仍应检查它们。您能否发布您的 HTML 示例。
标签: jquery validation tabs