1

約8つのテキストフィールドに対して、必須、オプション、非表示などの条件付きのドロップダウンが1つあります。フィールドが非表示であっても、検証を受けてエラーメッセージをスローするフィールドはほとんどありません。これを回避する方法は?これについて助けてください。

私のコードは次のとおりです。

            function responseFunction(res) {
    //1:mandatory
    //2:optional
    //3:hidden
    var str = res.split("~");
   for (i in str)
    {
     var field= str[i].split(':');
            switch (field[0]) {
            case "BillingAddressLine1": 
                 switch (field[1]) {                    
                  case "1":$('#ContentSection_lblBillingInfoAddress').prepend('<span>*</span>');
                  $("#<%= txtBillingInfoAddress.ClientID %>").rules("add", {required  : true, messages : {
                  required    : 'Please Enter Address'   }});
                  break;
                  case "3":$('#ContentSection_lblBillingInfoAddress, #ContentSection_txtBillingInfoAddress').hide().parent('p').css("paddingTop", "0px");
                  break;
                 }
            break;
            case "BillingFullName": 
                 switch (field[1]) {
                  case "1":$('#ContentSection_lblBillingInfoAccountHolderName').prepend('<span>*</span>');
                   $("#<%= txtBillingInfoAccountHolderName.ClientID %>").rules("add", {required  : true, messages : {
                  required    : 'Please Enter Account Holder Name'   }});
                  break;
                  case "3":$('#ContentSection_lblBillingInfoAccountHolderName, #ContentSection_txtBillingInfoAccountHolderName').hide().parent('p').css("paddingTop", "0px");
                  break;
                 }
            break;
    }
    }

私のスクリーンショットは: https://www.dropbox.com/sh/asmpnuiqqlo40us/S9yHCuNSyl?m#f:errorThrowing.jpg

4

4 に答える 4

2

すべての隠し要素に class 属性を追加し、ignoreプロパティを使用してこれらの要素をすべて無視します。

<input type='hidden' class='hiddenClass' />

$('form').validate({
 ignore: '.hiddenClass'
});
于 2012-08-17T07:30:28.403 に答える
1

以下のようにケースステートメントにチェックを入れるだけです

var control = $("#<%= txtBillingInfoAddress.ClientID %>");
if($(control).is(':hidden')){
  // remove validation
}
于 2012-08-17T07:45:28.827 に答える
1

非表示のときにフィールド検証を削除する

$('#targetId').rules('remove');

表示されたら検証を再追加

$('#targetId').rules('add', {
    required: true
});
于 2012-08-17T07:31:48.310 に答える
1

次のような JavaScript メソッドから検証を非表示にします。

function lalala()
{
  var validator1 = document.getElementById('Validator1ClientID');
  ValidatorEnable(validator1, false); 
}
于 2013-02-06T14:29:53.073 に答える