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事件,看看我的最新解决方案