Javascript 使用keydown()如果警报值为空,为什么在第一个字符之后?
如果我(第一次)按下一个字符,警报将打印一个空值 怎么可能?我不明白Javascript 使用keydown()如果警报值为空,为什么在第一个字符之后?,javascript,jquery,keypress,keydown,Javascript,Jquery,Keypress,Keydown,如果我(第一次)按下一个字符,警报将打印一个空值 怎么可能?我不明白 $('#search-vulc').on('keydown', function() { var textinsert = ($(this).val()).toLowerCase(); alert(textinsert); }); 请告诉我如何在第一次按下字符时打印它 这里还有一个JSFIDLE示例: 使用键控: $('search vulc')。在('keyup',function()上{ var textins
$('#search-vulc').on('keydown', function() {
var textinsert = ($(this).val()).toLowerCase();
alert(textinsert);
});
请告诉我如何在第一次按下字符时打印它
这里还有一个JSFIDLE示例:
使用
键控
:
$('search vulc')。在('keyup',function()上{
var textinsert=($(this.val()).toLowerCase();
警报(文本插入);
});代码>
使用keuyp事件:
这是因为keypress事件
是在将新字符添加到元素值之前触发的(因此第一个keypress事件
是在添加第一个字符之前触发的,而值仍然为空)。您应该改为使用keyup
,它在添加角色后激发
$('#search-vulc').on('keyup', function() {
var textinsert = ($(this).val()).toLowerCase();
alert(textinsert);
});
如果使用keydown
函数,它会在dom获取输入值之前工作
使用keyup
在您离开键时触发事件,以便它获得输入的值
$('search vulc')。在('keyup',function()上{
var textinsert=($(this.val()).toLowerCase();
警报(文本插入);
});代码>
keydown事件在值更新之前发生,请使用keydup
或input
事件而不是使用console.log进行调试,而不是alert@PranavCBalan什么形式的活动?可能是change()?@Borja:在文本的情况下,当你离开焦点时会触发field@PranavCBalan好的,非常感谢你的建议;)按键不是keydown@Borja我不这么认为,如果你想在输入字符之前执行一些操作,请使用keydown,如果你想在输入字符之后执行一些操作,请使用keydup-根据要求