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事件。