我想知道用户在输入中输入了哪个字符:
我有一个输入:
<input maxlength="20"/>
以及返回最后一个键入字符的脚本:
var eingabe;
$('form').on('keypress', function(event) {
/// if no whitespace:
if (String.fromCharCode(event.keyCode).replace(/\s/g, "").length > 0) {
eingabe = String.fromCharCode(event.keyCode);
$('#eingabe').html("<div>Eingabe : "+ eingabe +"</div>");
}
});
我的问题是: 因为我的输入有一个maxlength属性,键盘上最后输入的字符有时不是输入中的最后一个字体,因为输入是&#34; full&#34;。如何将输入的最后一个字符输入?
答案 0 :(得分:1)
我有类似的问题。如果用户在输入字段中键入特定字符,我想调用一个函数。我解决了以下问题:
var input = document.getElementById('myInput');
input.addEventListener('input', function() {
// Get cursor position
var start = this.selectionStart;
// Get last typed character
var lastChar = String.fromCharCode(this.value.charCodeAt(start - 1));
if(lastChar === '[YOURCHARHERE]') {
// do something
}
});
请记住,“输入”仅支持IE8,但如果您不关心专有浏览器,那么您应该没问题。我希望这会有所帮助。
答案 1 :(得分:0)
在你的函数中,使用input元素的值来获取像$('#input_field').val().substr($('#input_field').val().length - 1)
这样的最后一个字符,或者使用你最好的编码技巧来完成类似的事情,而无需访问该字段两次,眨眼间眨眼。
答案 2 :(得分:0)
我没有尝试过,但一定有用......
在Input元素上设置onkeypress =或onkeydown =并将键值存储在LastChr变量中。