输入文本

时间:2017-04-12 07:55:20

标签: javascript jquery

我有onkeydown()事件的功能并获取输入文本的值长度,当我按ctrl+a /阻止文本(带5个字符)并键入单个字符但**输入的输出值长度为4而不是0

function typeInput(that) {
  console.log($(that).val().length);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" onkeydown="typeInput(this)">

2 个答案:

答案 0 :(得分:3)

只是一些事情。我非常喜欢this关键字,所以我通常会绑定我的事件,如下所示。另外,我认为您需要onkeyup而不是onkeydown,因为在将最新字符添加到.val()之前会触发onkeydown。

function typeInput(){
   console.log($(this).val().length);
} 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" onkeyup="typeInput.bind(this)()">

答案 1 :(得分:2)

<input type="text" onkeydown="typeInput.bind(this)()">

Rest代码完全正常。

工作示例: -

function typeInput(that) {
  console.log($(this).val().length);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" onkeyup="typeInput.bind(this)()">