Javascript 如何使用maxlength获取输入中键入的-real-last字符?

Javascript 如何使用maxlength获取输入中键入的-real-last字符?,javascript,Javascript,我想知道用户正在输入的字符: <input maxlength="20"/> 我有一个意见: <input maxlength="20"/> 以及返回最后键入的字符的脚本: var eingabe; $('form').on('keypress', function(event) { /// if no whitespace: if (String.fromCharCode(event.keyCode).replace(/\s/g, ""

我想知道用户正在输入的字符:

  <input maxlength="20"/>
我有一个意见:

  <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>");
   }
});
var-eingabe;
$('form')。在('keypress',函数(事件)上{
///如果没有空格:
if(String.fromCharCode(event.keyCode).replace(/\s/g,“”).length>0){
eingabe=String.fromCharCode(event.keyCode);
$('#eingabe').html(“eingabe:+eingabe+”);
}
});
我的问题是:
因为我的输入有一个maxlength属性,所以键盘上最后键入的字符有时不是输入的最后一个实型字符,因为输入是“满的”。如何获取输入中键入的最后一个字符?

在函数中,使用输入元素的值获取最后一个字符,如
$('#input_field').val().substr($('#input_field').val().length-1)
或使用您最好的编码技巧完成类似操作,而无需访问该字段两次,眨眨眼。

我还没试过,但一定能用


在输入元素上设置onkeypress=或onkeydown=并将键值存储在LastChr变量中。

我遇到了类似的问题。如果用户在我的输入字段中键入特定字符,我想调用一个函数。我用以下方法解决了这个问题:

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,但如果你不关心专有浏览器,你应该没问题。我希望这有帮助。

您想要最后键入的字符还是
元素值中的最后一个字符?这两件事似乎不一样。为什么
keypress
事件附加到
form
元素而不是
input
元素?我想要
input
中出现的
input
中最后键入的字符。如果按[^]+[a]=[–],最后一个键入的字符是组合字符,您想得到一个或–吗?2.如果用户通过退格删除文本,您想将其也算作字符吗?3.如果用户将文本粘贴到输入中,这算是“键入字符”吗?谢谢,我不想获取输入中的最后一个字符(在字符串末尾),而是获取输入中任何位置的最后一个键入字符