目前我正在进行jquery验证。这里我有两个文本字段,如果用户试图通过错误的字母输入它,用户只能输入数字,它应该只是数字。
使用我当前的代码,这工作得很好,但文本没有正确清除。
这是jquery代码
$('.txt_CC').on('change',function(e){
var len = $('#txt_CC').val().length;
if(len == 1){
$('.cc_field').val( '00' + $('.cc_field').val());
}else if(len == 2){
$('.cc_field').val('0'+ $('.cc_field').val() );
}else if(len == 3){
}
});
$('.txt_CC').keypress(function(e){
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
//display error message
$('.txt_CC').val('');
alert("Digit only");
}
});
请建议我代码是否正确
以下是html的fiddle link
提前致谢
答案 0 :(得分:3)
<强> DEMO 强>
如果它是一个字符,您可以通过阻止在其中输入文本而不是清除来执行e.preventDefault()
。例如:
$('.txt_CC').keypress(function(e){
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
e.preventDefault();
alert("Digit only");
}
});
<强>更新强>
只需将phone number
元素类添加到keypress
事件中,如下所示:
$('.txt_CC,.pn_field').keypress(function(e){
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
e.preventDefault();
alert("Digit only");
}
});
<强> DEMO 强>
答案 1 :(得分:2)
您正在使用按键更改键盘。 onKeyPress Vs. onKeyUp and onKeyDown