Javascript 按键事件不适用于最后插入的字符

Javascript 按键事件不适用于最后插入的字符,javascript,jquery,Javascript,Jquery,我制定了以下代码: $(".SermeCoopConvertirMayuscula").keypress(function (e) { $(this).val($(this).val().toUpperCase()); regexp = /^[A-Z0-9 ]*$/; return regexp.test($(this).val()); }); 它工作得很好。但当我键入某些内容时,它不会更新我最后插入的字符。如何添加最后一个字符 我需要使用keypress事件,我不能使

我制定了以下代码:

$(".SermeCoopConvertirMayuscula").keypress(function (e) {
    $(this).val($(this).val().toUpperCase());
    regexp = /^[A-Z0-9 ]*$/;
    return regexp.test($(this).val());
});
它工作得很好。但当我键入某些内容时,它不会更新我最后插入的字符。如何添加最后一个字符

我需要使用keypress事件,我不能使用keyup事件

改用。当激发
keypress()
时,最近的字符仍未在输入中注册,因此
$(this).val()
不会将其包含在最近的事件中

$(“输入”).keyup(函数(e){
$(this.val($(this.val().toUpperCase());
regexp=/^[A-Z0-9]*$/;
返回regexp.test($(this.val());
});

您也可以尝试
输入
,它还可以处理各种其他输入场景。更多细节,请参阅

$(.SermeCoopConvertirMayuscula”).on(“输入”,函数(e){
$(this.val($(this.val().toUpperCase());
regexp=/^[A-Z0-9]*$/;
返回regexp.test($(this.val());
});

True,因为调用函数时,字段不会用值更新

在此步骤中调用该事件

  • 键控
  • 按键
  • 更新视图
  • 按键
  • 更新视图
  • 钥匙
  • 因此,如果您可以将此事件更改为,那么您将获得最新的值

    或者,如果您仍然想使用按键事件,您可以做一件事,您可以使用以下代码

    $(".SermeCoopConvertirMayuscula").keypress(function (eventObject) {
        var val = $(this).val() + eventObject.key;
        val =val.toUpperCase()
        var regexp1 = /^[A-Z0-9 ]*$/;
        var regexp2 = /^[A-Za-z0-9 ]$/;
        if(regexp1.test(val) && regexp2.test(eventObject.key)) {
          $(this).val(val);
        }
    
        return false;
    });
    

    你不能改用这个函数吗?因为我喜欢看我用大写字母写的东西。如果你不能使用keyup事件,看看我的最新解决方案