2017-02-06 40 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

我認爲你的代碼有一些錯誤,如果可能的話請刪除PHP代碼,這樣會更容易檢查你的代碼 – andrepaulo

+0

@andrepaulo完成。 – DB1500

回答

3

這不是因爲別的運行。這是因爲你正在使用兄弟姐妹()。

嘗試運行此:

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

你會改變他們所有。閱讀documentation關於兄弟姐妹如何工作

+0

啊我明白了。我使用通用類選擇器而不是該元素的ID。謝謝。 – DB1500

相關問題