2017-02-06 17 views
1

私はロード時にフォームを循環させようとしています(フィールドがあらかじめ設定されている可能性があります)。コードブロックが一緒に実行されている場合

jQueryのは、次のとおりです。

$(document).ready(function(){ 
 
    
 
     // test code for dynamic validation 
 
     var $feedback = '.form-feedback'; 
 
     var $icon = 'i'; 
 
     var $good = 'ion-checkmark-circled'; 
 
     var $bad = 'ion-close-circled'; 
 
    
 
     // form selectors 
 
     var arr = ["username", "first-name", "last-name"]; 
 
    
 
     $.each(arr, function(i, val) { 
 
     if ($("#form-" + val).val() !== '') { 
 
      console.log("#form-" + val + ": "+ $good); 
 
      $("#form-" + val).siblings($feedback).find($icon).addClass($good); 
 
     } else { 
 
      console.log("#form-" + val+ ": "+ $bad); 
 
      $('.main-input-field input').siblings($feedback).find($icon).addClass($bad); 
 
     } 
 
     }); 
 
    
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p>Username:</p> 
 
    <p class="main-input-field"><input id="form-username" class="username" type="text" name="UserName" ><span class="form-feedback"><i></i></span></p> 
 
    <p>First Name:</p> 
 
    <p class="main-input-field"><input type="text" id="form-first-name" name="FirstName" ><span class="form-feedback"><i></i></span></p> 
 
    <p>Surname:</p> 
 
    <p class="main-input-field"><input type="text" id="form-last-name" name="Surname" ><span class="form-feedback"><i></i></span></p>

あなたは私がチェックまたはクロスのどちらかを表示するクラスを追加したい空白<i>要素を持って見ることができるように。入力フィールドが空白の場合は有効ですが、入力フィールドに値がある場合はコードを実行し、elseコードも追加します($ goodクラスを追加して$ badクラスも追加します)。結果はすべての結果にクロスです。

助けが必要ですか?

ありがとうございました。

+1

私はあなたのコードにいくつかのエラーがあると思っています。可能であれば、あなたのコードを調べてください。 – andrepaulo

+0

@andrepaulo done。 – DB1500

答えて

3

elseが実行されているからではありません。あなたが兄弟()を使っているからです。

はこれを実行しよう:

console.log($('.main-input-field input').siblings('.form-feedback')); 

あなたがそれらすべてを変更します。 documentationの兄弟の働きについて

+0

ああそうです。私はその要素のidの代わりに汎用クラスセレクタを使用しています。ありがとう。 – DB1500

関連する問題