2012-08-08 142 views
0

我有一個需要3到10個文本輸入項的表單。表單首次加載時會顯示3個輸入(最小)。如何才能顯示輸入字段只有當前一個輸入有一個有效的值?

我想有效地顯示輸入行,因爲上一行有一個有效的值(假設大於3個字符爲例)。所以如果你填寫第一個3,你會自動看到第四個可選的輸入行。

你能幫我在jQuery中有效地循環這個快速列表嗎?

HTML:

<input type="text" class="item_1" name="item_1"> 
<input type="text" class="item_2" name="item_2"> 
<input type="text" class="item_3" name="item_3"> 
<input type="text" class="item_4" name="item_4"> 
<input type="text" class="item_5" name="item_5"> 
<input type="text" class="item_6" name="item_6"> 
<input type="text" class="item_7" name="item_7"> 
<input type="text" class="item_8" name="item_8"> 
<input type="text" class="item_9" name="item_9"> 
<input type="text" class="item_10" name="item_10"> 

CSS:

.item_4,.item_5,.item_6,.item_7,.item_8,.item_9,.item_10 { display:none } 
+3

如果這些將是唯一的標識符,那麼'class =「item_X」'應該是一個** id **而不是:'id =「item_X」' - 另外,如果你有什麼想要發生的至多說,item_7(1-6有效,所以7出現),然後返回並更改item_3,使其不再有效? – 2012-08-08 20:14:44

回答

2

這很簡單 - 你甚至不應該需要一個循環,如果你讓jQuery的鏈接做的工作。我會做這樣的事情:

$("#myform input").change(function(){ //If an input in your form is changed, 
    if ($(this).val() == 42){ //replace with your validation logic :) 
     $(this).next('input').show(); //This shows the next sibling element to the triggering element 
    } else { //but if it fails validation... 
     $(this).nextAll('input').hide().val(""); //hide them and delete the contents to stop the form from uploading invalidated data! 
    } 
}); 

這確實你問什麼,獎勵積分,它隱藏和清空後箱,如果他們的前輩們後來改爲無效。

相關問題