jQuery将输入的数字/位数限制为4,但文本可以无限长

jQuery将输入的数字/位数限制为4,但文本可以无限长,jquery,input,numbers,limit,Jquery,Input,Numbers,Limit,我怎么能有一个限制为4个数字/位数的输入,但如果键入文本,字符长度是无限的 最终工作代码: function isNumber (o) { return ! isNaN (o-0); } $("#txt").keyup(function(e){ txtVal = $(this).val(); if(isNumber(txtVal) && txtVal.length>4) { $(this).val(txtVal

我怎么能有一个限制为4个数字/位数的输入,但如果键入文本,字符长度是无限的

最终工作代码:

    function isNumber (o) {
  return ! isNaN (o-0);
}

$("#txt").keyup(function(e){
    txtVal = $(this).val();  
     if(isNumber(txtVal) && txtVal.length>4)
     {
         $(this).val(txtVal.substring(0,4) )
           $(".error").html("4 Numbers Only").show();
      return false;
     }
});
});

HTML

 <input id="txt1" type="text" name="usrname" />​

您可以检查该值是否为数字值,如果超过4个字符,则触发验证

$("#yourField").change(function(e){
     if(isNaN($(this).val()) && $(this).val().length > 4)
     {
        //trigger validation
     }
});
HTML

工作示例


基本提示。但是这是如何回答这个问题的呢?如果你重读这个问题,你会从我这里得到+1。(无限文本,但只有4位。)@Adil很好,Adil…如果用户像这样输入aaa11111111并清除所有字符,请将此项检查到?是的@Gopesh这是可能遇到的情况之一。这可以帮助我们,但取决于我们到底想要什么。谢谢@Gopesh:)请查看演示
$("#yourField").change(function(e){
     if(isNaN($(this).val()) && $(this).val().length > 4)
     {
        //trigger validation
     }
});
<input type="text" class="numeric" />
$('.numeric').keypress(function(e) { 

var verified = (e.which == 8 || e.which == undefined || e.which == 0) ? null : String.fromCharCode(e.which).match(/[^0-9]/);
if (verified || e.delegateTarget.value.length>3 || e.ctrlKey ==true) { if(e.which!=8 ){e.preventDefault();}}

}).on('paste',function(e){ e.preventDefault();});