我想在用户输入时检查输入是否为空
这是我的代码
$('#visitID').on('change', function () {
if ($('#visitID').val().length == 0) {
$("#saveandclosebutton").hide();
} else {
$("#saveandclosebutton").show();
}
});
但即使输入为空,saveandclosebutton
也永远不会隐藏。
答案 0 :(得分:3)
你也可以包括keyup
,例如:
$('#visitID').on('change keyup', function () {
this.value ? $("#saveandclosebutton").show() : $("#saveandclosebutton").hide();
});
当然,您最初需要将按钮设置为display:none
,因为<input>
最初为空。
#saveandclosebutton {
display:none;
}
答案 1 :(得分:1)
我猜saveandclosebutton
的调用方式不同。首先尝试查看主逻辑是否正常工作:
$('#visitID').on('change keyup', function () {
console.log($('#visitID').val().length);
});
并检查控制台是否有任何输出。您可以像我一样添加keyup
,以便在每次按键后完成检查。
答案 2 :(得分:1)
将事件处理程序绑定到keyup
和change
事件,但是您还希望在页面加载时执行事件处理程序:
$('#visitID').on('keyup change', function() {
$('#saveandclosebutton').toggle($(this).val().length > 0);
}).change();
答案 3 :(得分:0)
尝试将 .is() 与 :empty 选择器一起使用,并使用 keyup 事件当您在输入中输入文本时,会有实时更新:
$('#visitID').on('change keyup', function () {
if ($(this).is(':empty')) {
$("#saveandclosebutton").hide();
} else {
$("#saveandclosebutton").show();
}
});
答案 4 :(得分:0)
$('#visitID').on('change keyup', function () {
$("#saveandclosebutton").toggle(this.value.length == 0);
});
答案 5 :(得分:0)
尝试密钥。将其更改为:
$('#visitID').keyup(function () {
var len = $('#visitID').val().length;
if ( len == 0)
$("#saveandclosebutton").hide();
else
$("#saveandclosebutton").show();
});