我有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)">
答案 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)()">