首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery验证表单提交上的所有选项卡

jQuery验证表单提交上的所有选项卡
EN

Stack Overflow用户
提问于 2011-12-09 08:59:19
回答 2查看 4.9K关注 0票数 2

当前的jQuery验证插件,只验证选定的选项卡。因此,为了验证所有的选项卡,我引入了忽略属性。

代码语言:javascript
复制
$("form").validate({
....
 ....
ignore:"ui-tabs-hide"
});

但是在给出这个之后,它甚至验证了隐藏的字段。是否有方法通过忽略每个选项卡上的隐藏字段来验证所有选项卡上的字段。

html

代码语言:javascript
复制
<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

代码语言: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"

});
})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-07 00:27:12

Excelent...the解决方案是这样的组合:

代码语言:javascript
复制
$("form").validate({
....
 ....
ignore:"ui-tabs-hide"
});

更多...

代码语言:javascript
复制
$("div[id^=fragment-]").bind("click", function() {
   $("div[id^=fragment-]").children("input, select, textarea").prop("disabled", true);
   $(this).children("input, select, textarea").prop("disabled", false);
});
票数 4
EN

Stack Overflow用户

发布于 2011-12-09 10:31:41

您需要禁用其他控件。

试试这个:

代码语言:javascript
复制
$("div[id^=fragment-]").bind("click", function() {
   $("div[id^=fragment-]").children("input, select, textarea").prop("disabled", true);
   $(this).children("input, select, textarea").prop("disabled", false);
});

这将使当前选项卡的控件处于启用状态,而其他选项卡控件将被禁用,因此验证器将只验证选项卡中的当前元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8443164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档