Javascript 使用Jquery验证输入
我试图做一些类似下面的代码,但到目前为止还没有成功Javascript 使用Jquery验证输入,javascript,jquery,Javascript,Jquery,我试图做一些类似下面的代码,但到目前为止还没有成功 function isNumberKey(evt) { var charCode = (evt.which) ? evt.which : event.keyCode if (charCode > 31 && (charCode < 48 || charCode > 57)) return false; return true; } // restrict numerical values
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
return true;
} // restrict numerical values only
但是应该向用户显示一条消息,输入应该像第一个代码一样被忽略。这会起作用
$(".input-xlarge").keyup(function (evt) {
var textInField = this.value;
if (textInField.length == 1) {
if (textInField == 0) {
alert('number should not start with zero');
$(evt.target).val("")
}
}
});
这会管用的
$(".input-xlarge").keyup(function (evt) {
var textInField = this.value;
if (textInField.length == 1) {
if (textInField == 0) {
alert('number should not start with zero');
$(evt.target).val("")
}
}
});
请尝试以下代码:
$(".input-xlarge").keyup(function (event) {
var textInField = this.value;
if (textInField.substr(0, 1) == '0') {
event.preventDefault();
alert("should not start with zero');
}
});
通过这样做,每当用户输入0
作为第一个字母时,它将不会显示,并会提示错误消息。尝试以下代码:
$(".input-xlarge").keyup(function (event) {
var textInField = this.value;
if (textInField.substr(0, 1) == '0') {
event.preventDefault();
alert("should not start with zero');
}
});
$( ".input-xlarge" ).keyup(function(e) {
var textInField = this.value;
if (textInField.length == 1){
if (this.value.length == 0 && e.which == 48 ){
alert('cannot start with zero')
return false;
}
}
});
这样,每当用户输入0
作为第一个字母时,它就不会显示,并会发出错误消息警报
$( ".input-xlarge" ).keyup(function(e) {
var textInField = this.value;
if (textInField.length == 1){
if (this.value.length == 0 && e.which == 48 ){
alert('cannot start with zero')
return false;
}
}
});
参考此
参考此查看小提琴,此“阻止”文本框仅用于通过js进行有效输入
HTML:
JS:
$(“#数字”).keydown(函数(e){
if(e.keyCode==8)//允许退格-在此处添加更多字符
{
回来
}
否则如果(e.keyCode<48 | | e.keyCode>57 | | |(e.keyCode==48&&$(this).val()=='')//非数字+起始零
{
e、 预防默认值();
}
});
看看小提琴,它“阻止”了文本框,只允许通过js进行有效输入
HTML:
JS:
$(“#数字”).keydown(函数(e){
if(e.keyCode==8)//允许退格-在此处添加更多字符
{
回来
}
否则如果(e.keyCode<48 | | e.keyCode>57 | | |(e.keyCode==48&&$(this).val()=='')//非数字+起始零
{
e、 预防默认值();
}
});
为了改进您的答案,您可以解释为什么这样做有效。这样做有效,但在自动删除之前会出现零(0)。我需要它根本不出现在文本框上。然后只需删除警报,它会在键达到时立即删除零。为了改进您的答案,您可以解释为什么会这样做。这是可行的,但零(0)会在自动删除之前出现。我需要它根本不出现在文本框上。然后只需删除警报,它会在键为upAh时立即删除零,不要使用keyup,而是使用keydown。。因为在keyup事件期间,您的角色已经输入到字段中..啊,不要使用keyup,而是使用keydown。。因为在keyup事件期间,您的角色已经输入到字段中。当用户按键时,会触发KeyDown事件。当用户释放键时触发KeyUp事件。当用户按下键时触发KeyDown事件。当用户释放密钥时,将触发KeyUp事件。