我不知道这是否可能(它看起来不是),但我试图在HTML输入的onKeyDown或onKeyPress事件中找到一种方法来检测标签,结果值是什么。
我使用这些事件非常重要。我不能只使用onKeyUp,因为到那时输入已经改变了。我想首先防止它发生。我还尝试将按下的关键字符附加到字符串的末尾,但这并不能解释您在输入字段的字符串开头键入字符的情况。
有什么想法吗?我已经找了一段时间但看起来不可能,但我想我也会问。
答案 0 :(得分:3)
这里我有两个版本,一个是jQuery,另一个是JavaScript。
$("#inputJQuery").on("keydown", function(ev){
console.log("jQuery value:", $(this).val()); // this is the value before the key is added
console.log("jQuery selectionStart:", this.selectionStart); // the position where the character will be inserted
console.log("jQuery selectionEnd:", this.selectionEnd); // if has a selection this value will be different than the previous
})
document.querySelector("#inputVanilla").onkeydown = function(ev){
console.log("VANILLA value:", this.value); // this is the value before the key is added
console.log("VANILLA selectionStart:", this.selectionStart); // the position where the character will be inserted
console.log("VANILLA selectionEnd:", this.selectionEnd); // if has a selection this value will be different than the previous
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<input id="inputJQuery" type="text"/>
<input id="inputVanilla" type="text"/>
答案 1 :(得分:2)
只需检查keydown上length
的{{1}}即可。这也适用于删除字符。
您还可以在返回value
的条件中对此进行检查,以防止用户输入超过一定数量的字符。请注意,您可能想要针对退格和删除键(keyCodes false
和{{1}进行检查分别),以便在达到最大长度后能够删除密钥。
8
&#13;
46
&#13;
希望这有帮助! :)