我写了这段代码:
$(".SermeCoopConvertirMayuscula").keypress(function (e) {
$(this).val($(this).val().toUpperCase());
regexp = /^[A-Z0-9 ]*$/;
return regexp.test($(this).val());
});
它工作正常。但是,当我输入内容时,它不会更新我最后插入的字符。我怎样才能添加最后一个字符?
我需要使用 keypress 事件,我不能使用 keyup 事件。
最佳答案
是的,因为当函数被调用时,字段不会更新为值
事件在这一步被调用
- 按键
- 按键
- 更新 View
- 按键
- 更新 View
- 按键
因此,如果您可以将此事件更改为 keyup然后你会得到最新的值
或者,如果您仍想使用可以做一件事的按键事件,您可以使用以下代码
$(".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;
});
关于javascript - 按键事件不适用于最后插入的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30668236/