我有两个输入文字:
input1
<input type='text' id='input1' name='input1'>
<br>
input2
<input type='text' id='input2' name='input2'>
<br>
现在我想隐藏input2
基于input1
中的事件,如果input1
中没有文字,则会隐藏input2
,反之亦然。我写这样的JQuery代码:
$(document).ready(function () {
var inputText = document.getElementById("input1");
var textLength = inputText.value.length;
if (textLength <= 0){
$('#input2').hide("fast");
}
else{
$('#input2').show("fast");
}
});
仅在每次刷新后才有效。那么如何捕获input1
中的输入事件并立即影响到input2
的变化?
答案 0 :(得分:1)
你可以将它包装在jquery keydown
或keyup
函数上。
<script>
$(document).ready(function() {
$("#input1").keydown(function() {
var inputText = this.value;
var textLength = inputText.length;
if (textLength <= 0) {
$('#input2').hide("fast");
} else {
$('#input2').show("fast");
}
});
});
答案 1 :(得分:1)
您可以尝试以下代码:
$(document).ready(function () {
var input1 = $('#input1');
function toggleInput() {
if(input1.val().length) {
$('#input2').show("fast");
} else {
$('#input2').hide("fast");
}
}
toggleInput();
$('#input1').on('keyup', toggleInput);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
input1
<input type='text' id='input1' name='input1'>
<br>
input2
<input type='text' id='input2' name='input2'>
<br>
答案 2 :(得分:0)
您需要为这些元素添加事件侦听器。示例主要使用您的原始代码。
$(document).ready(function() {
$('#input1').on("keyup", function() {
var inputText = document.getElementById("input1");
var textLength = inputText.value.length;
if (textLength <= 0) {
$("#input2").hide("fast");
} else {
$("#input2").show("fast");
}
})
});
答案 3 :(得分:0)
此解决方案假设您只有两个输入文本框。
首先分配一个像
这样的公共类input1
<input type='text' id='input1' class='input' name='input1'>
<br>
input2
<input type='text' id='input2' class='input' name='input2'>
<br>
$(".input").change(function(){
alert(this.id);
if(this.id == 'input1')
{
if ($(this).val().length > 0){
$("#input2").show();
} else {
$("#input2").hide();
}
}
else
{
if ($(this).val().length > 0){
$("#input1").show();
} else {
$("#input1").hide();
}
}
});
答案 4 :(得分:0)
$('#input1').on('input', function() {
$('#input2').toggle($(this).val().length === 0);
});
答案 5 :(得分:0)
用此代码替换您的javascript!此代码改进了应用程序的性能,因为它只使用了一次选择器!
$(document).ready(function () {
var input1 = $('#input1');
var input2 = $('#input2');
input2.hide("fast");
input1.on('keyup', function() {
if(input1.val().length) {
input2.show("fast");
} else {
input2.hide("fast");
}
});
});