javascript - 如何仅当先前输入具有有效值时才显示输入字段?

标签 javascript jquery forms loops

我的表单需要 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 }

最佳答案

这非常简单 - 如果您让 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!
    }
});

这符合您的要求,并且为了获得奖励积分,如果其前任后来被更改为无效,它会隐藏并清空后面的框。

关于javascript - 如何仅当先前输入具有有效值时才显示输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11872377/

相关文章:

javascript - 我应该使用 requestAnimationFrame 淡入多个元素吗?实现60fps的动画?

javascript - 如何为所有 AJAX 链接编写一个 jquery 函数

javascript - iframe正在添加标签,需要删除它们

php - 尝试使用 WAMPSERVER 保存到数据库时出现 MySQL 连接问题

javascript - 关闭Iframe模态框后刷新父页面

jquery - 可使用 jQuery UI Datepicker 进行 Jeditable

javascript - CSS 技巧或 javascript

javascript - 如何防止用户在 Rails 浏览器中点击 'back' 后重复提交表单

jquery - 所见即所得的 jquery 编辑器分成两个文本区域

javascript - onsubmit 多个 javascript 函数