我已在表单上为多个文本框(<input type="text">
)实现了一个处理程序。
$(popUp).on('change', 'input', function (e) {
}
所有值都必须为数字,我调用$.isNumeric($(this).val())
以确保新值符合。
但是,如果该值不是数字,我将显示一条消息。但我还想将文本框值恢复为原始值,以确保表单数据保持有效。
是否有任何自动方法可以阻止更新文本框值?
答案 0 :(得分:3)
正如我在评论中所说,如果你阻止用户首先输入任何非数字字符,所有问题都解决了:
$('input:text').keydown(function( e ) {
if(!/([\d ,\$])+/.test(String.fromCharCode(e.which)))
return false;
});
答案 1 :(得分:3)
如果新值为数字,则恢复初始值的方法如何:
$(popUp).on('change', 'input', function (e) {
if (!$.isNumeric(this.value)) {
this.value = $(this).attr('value');
}
else {
$(this).attr('value', this.value);
}
});
另一种选择可能是一起阻止非数字输入,但不确定你是否需要它。
答案 2 :(得分:2)
你可以添加keydown事件。
$(popUp).on('keydown', 'input', function (e) {
var unicode=e.keyCode? e.keyCode : e.charCode
if unicode >= 48 && unicode <= 57 {
return true;
}
else{
return false;
}
});