JQuery проверяет все вкладки в форме отправки - PullRequest
1 голос
/ 09 декабря 2011

В настоящее время плагин проверки jQuery, проверяет только выбранную вкладку. Поэтому для проверки всех вкладок я ввел атрибут ignore

$("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"

});
})

Ответы [ 2 ]

3 голосов
/ 07 мая 2012

Отлично ... решение было комбинацией:

$("form").validate({
....
 ....
ignore:"ui-tabs-hide"
});

больше ...

$("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 голосов
/ 09 декабря 2011

Вам нужно отключить другие элементы управления.

Попробуйте это:

$("div[id^=fragment-]").bind("click", function() {
   $("div[id^=fragment-]").children("input, select, textarea").prop("disabled", true);
   $(this).children("input, select, textarea").prop("disabled", false);
});

Это будет держать элемент управления текущей вкладки включенным и другие элементы управления вкладками отключенными, и, таким образом, валидатор будет проверять только текущие элементы на вкладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...