我有五个最初不会预填充任何值的表单字段。
如果用户填写其中一个字段,则在他们下次访问表单时,该字段将预先填充上次访问的值。
这就是我正在尝试的:我想创建一个遍历字段的循环。它将始终检查是否有空字段。找到2个空字段后,循环将停止,只显示这2个空字段,而其他字段被隐藏。
这是我目前所拥有的......我只是想不出在遍历两个字段后如何停止,
HTML:
<form action="">
<input id="first" type="text" value="" />
<input id="second" type="text" value="" />
<input id="third" type="text" value="" />
<input id="fourth" type="text" value="" />
<input id="fifth" type="text" value="" />
</form>
JS:
$(document).ready(function() {
$('input').hide();
var firstValue = $('input[id="first"]').val(),
secondValue = $('input[id="second"]').val(),
thirdValue = $('input[id="third"]').val(),
fourthValue = $('input[id="fourth"]').val(),
fifthValue = $('input[id="fifth"]').val();
var firstField = $('input[id="first"]'),
secondField = $('input[id="second"]'),
thirdField = $('input[id="third"]'),
fourthField = $('input[id="fourth"]'),
fifthField = $('input[id="fifth"]');
var formValues = [firstValue, secondValue, thirdValue, fourthValue, fifthValue];
var fieldIds = [firstField, secondField, thirdField, fourthField, fifthField];
for (var i = 0; i < fieldIds.length; i++) {
for (var i = 0; i < formValues.length; i++) {
if ( formValues[i] === '' ) {
fieldIds[i].show();
return false;
}
}
}
});
最佳答案
取所有输入字段,取前两个空字段并显示;最后,取其补数以隐藏其余部分:
var $inputFields = $('form input:text'),
$emptyFields = $inputFields
.filter(function() { return this.value == ''; })
.slice(0, 2)
.show();
$inputFields
.not($emptyFields)
.hide();
关于javascript - 循环输入字段;两次迭代后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521986/