jQuery.val()忽略输入的第一个字符
我有一个输入和一个标签。我想在用户在输入框中键入任何内容时显示标签。但是,正如您在代码段(或on)中看到的,您在输入框中键入的第一个字符将被忽略,您需要键入另一个字符,以使值不为空jQuery.val()忽略输入的第一个字符,jquery,input,addeventlistener,event-listener,Jquery,Input,Addeventlistener,Event Listener,我有一个输入和一个标签。我想在用户在输入框中键入任何内容时显示标签。但是,正如您在代码段(或on)中看到的,您在输入框中键入的第一个字符将被忽略,您需要键入另一个字符,以使值不为空 $('input')。在('change paste keydown',函数(事件)上{ var inputID=event.target.id; var值=$('#'+inputID).val(); $('#'+inputID+'Label').css('visibility','visible'); 如果(值=
$('input')。在('change paste keydown',函数(事件)上{
var inputID=event.target.id;
var值=$('#'+inputID).val();
$('#'+inputID+'Label').css('visibility','visible');
如果(值=“”){
$('#'+inputID+'Label').css('visibility','hidden');
}
})
#input1Label{visibility:hidden;}
标签
听输入
keydown
,顾名思义,它会在键被提起之前触发,对您来说至关重要的是,在值被更新之前触发
input
不仅可以覆盖当前正在侦听的所有三个事件,还可以在值更新后触发,这意味着您将获得最新的值
$('input').on('input', event => {
let inputID = event.target.id;
$('#'+inputID+'Label').css('visibility', $('#'+inputID).val() ? 'visibile' : 'hidden');
})
keydown
是在输入值更改之前触发的,这就是您第一次获得空值的原因
您应该将其更改为keyup
事件,该事件在释放钥匙后触发
$('input')。在('change paste keyup',函数(事件)上{
var inputID=event.target.id;
var值=$('#'+inputID).val();
$('#'+inputID+'Label').css('visibility','visible');
如果(值=“”){
$('#'+inputID+'Label').css('visibility','hidden');
}
})
#输入1标签{
可见性:隐藏;
}
标签
keydown
在更改输入值之前被触发,因此value
在第一次keydown
时为空。