使用keydown()为什么在第一个字符后如果警告值为空?

时间:2016-06-13 13:16:32

标签: javascript jquery keypress keydown

如果我按下(第一次)一个字符,则警告会打印一个空值。

怎么可能?我不明白。

$('#search-vulc').on('keydown', function() {
  var textinsert = ($(this).val()).toLowerCase();
  alert(textinsert);
});

请告诉我如何在第一次按下角色时打印它。

这里还有一个jsfiddle示例:

https://jsfiddle.net/06xg4c78/1/

3 个答案:

答案 0 :(得分:2)

使用keuyp事件:

这是因为在将新字符添加到元素的值之前触发keypress events(因此在添加第一个字符之前触发第一个keypress event,而值仍为空) 。您应该使用keyup代替,这是在添加字符后触发的。

$('#search-vulc').on('keyup', function() {
  var textinsert = ($(this).val()).toLowerCase();
  alert(textinsert);
});

答案 1 :(得分:0)

改为使用keyup



$('#search-vulc').on('keyup', function() {

  var textinsert = ($(this).val()).toLowerCase();
  alert(textinsert);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">
&#13;
&#13;
&#13;

更新了小提琴:https://jsfiddle.net/06xg4c78/2/

答案 2 :(得分:0)

如果您使用keydown函数,则在dom获取输入值

之前它可以正常工作

使用keyup会在您离开密钥时触发事件,以便输入值

$('#search-vulc').on('keyup', function() {
  var textinsert = ($(this).val()).toLowerCase();
  alert(textinsert);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" size="150" style="width: 150px;" name="qu" id="search-vulc">