【发布时间】:2018-12-20 09:38:03
【问题描述】:
我试图使用循环和输入的 id 作为查询选择器一一删除输入的禁用属性,但它没有按预期工作。我设法做到了没有循环,但是我必须为此编写 3 个不同的代码。请帮忙。谢谢。 编辑:keyup 事件将在下一个输入字段上切换禁用属性。例如,如果第一个输入不为空,则第二个输入字段的禁用属性将被删除。当第一个输入为空时,第二个输入将再次被禁用。这适用于第三和第四输入字段。
var inputs = $('input');
for (var i = 0; i < inputs.length; i++) {
console.log('#'+inputs[i].id); // print id1, id2, id3, id4
console.log('#'+inputs[i+1].id); // print id2, id3, id4
var x = '#'+inputs[i].id;
var y = '#'+inputs[i+1].id;
$(x).keyup(function() {
if ($(x).val() != '') {
$(y).attr( "disabled", false );
} else {
$(y).attr("disabled", true);
}
})
}
// what I want my code to be like but in loops
$("#id1").keyup(function() {
if ($("#id1").val() != '') {
$("#id2").attr( "disabled", false );
} else {
$("#id2").attr("disabled", true);
}
})
$("#id2").keyup(function() {
if ($("#id2").val() != '') {
$("#id3").attr( "disabled", false );
} else {
$("#id3").attr("disabled", true);
}
})
$("#id3").keyup(function() {
if ($("#id3").val() != '') {
$("#id4").attr( "disabled", false );
} else {
$("#id4").attr("disabled", true);
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="id1">
<input type="text" id="id2" disabled>
<input type="text" id="id3" disabled>
<input type="text" id="id4" disabled>
【问题讨论】:
-
keyup 事件如何在禁用元素上触发?
-
你到底需要什么?当您单击输入输入内容时,或者当用户在上一个文本框中输入时需要逐个启用输入?
-
keyup 事件将切换下一个输入字段的禁用属性。例如,如果第一个输入不为空,则将删除第二个输入禁用属性。但如果它为空,则第二个输入字段将再次被禁用。这适用于后续输入。很抱歉一开始没有说清楚。
标签: javascript jquery html loops input