2012-08-08 143 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! 
    } 
}); 

这确实你问什么,奖励积分,它隐藏和清空后箱,如果他们的前辈们后来改为无效。

相关问题