2017-01-31 2 views
0

ステップフォームでnext buttoonをクリックしてフォーム要素を検証する必要があります。私はすべての隠されたフィールドを検証しているフォローコードを使用しています。助けが必要。フォームに表示されている要素のみを検証する

$('.msf-form .btn-next').on('click', function() {         
    var parent_fieldset = $(this).parents('fieldset'); 
    var next_step = true; 


    parent_fieldset.find('.is_required').each(function() { 
     if($(this).val() == "") { 
      $(this).focus().css('border','1px solid #F44336'); 
      $(".error-messages-slct").text("Please Select an option in the list").fadeIn(); 
      next_step = false; 
     } 
     else{ 
     $(this).focus().css('border','0px solid #F44336'); 
     $(".error-messages-slct").empty().fadeOut(); 

    } 
    }); 

    parent_fieldset.find('.is_required1').each(function() { 
     if($(this).val() == "") { 
      $(this).focus().css('border','1px solid #F44336'); 
      $(".error-messages-slct1").text("Select an option in the list").fadeIn(); 
      next_step = false; 
     } 
     else{ 
     $(this).focus().css('border','0px solid #F44336'); 
     $(".error-messages-slct1").empty().fadeOut(); 

    } 
    }); 

    if(next_step) { 
     parent_fieldset.fadeOut(400, function() { 
      $(this).next().fadeIn(); 
     }); 
    } 

}); 

答えて

0

あなたはセレクタ後:visibleを追加することができます。事前に感謝..ここ

は私のコードです。この参照を使用します。..

Use it like this

+0

いいですね、これは考えていませんでした。サイドの質問:これはディスプレイのプロパティと機能的に異なるのですか? – SREagle

+0

@SREagle https://jsfiddle.net/zqpswxbv/ここであなたは違いを見ることができます:-) – DomeTune

+0

この例ではおかげさしですが、これは私の半分を忘れています '知識'。しかし、私はjQueryの.fadeIn/.fadeOutも表示プロパティを設定していることを知ったので、OPの質問とは無関係です。 – SREagle

0

を代わりにクラスの.is_required1' と '.is_required」の各要素の上に行こうと、あなただけ(ある)であるこれらの要素(複数可)のためにそれを行う必要があり、現在、可視。このために追加のクラスを使用するか、displayプロパティを照会することができます。

minksmnmの提案を考慮すると、表示可能な要素のみを選択するには、 `` find( '。is_required') `の代わりにfind('.is_required:visible')を使用できます。他の場所では、あなたの発見は隠されたものも取得し、それらも検証します。

+0

可視要素は、さまざまなラジオボタンの選択後に表示される要素です。すべての異なるラジオには、異なる選択ボックスと、そのラジオボタンの下にあるすべての選択ボックスの検証があります – Test

関連する問題