输入框 - 防止用户输入0作为第一个数字

时间:2013-08-08 10:17:11

标签: javascript jquery

我有2个输入框。我希望用户不能输入任何以0开头的数字。注意开头只有0。它可以在结尾或中间,但不是在开头。

所以允许4,40,4440而不是04。

检查这个fiddle我放了几个其他的限制,比如只允许数值,长度是4.现在我想添加与0相关的限制。

如何使用jQuery完成?

HTML

<input name="major" size="1" value="4" class="major_rev">.

<input name="minor" size="1" value="24" class="minor_rev">

5 个答案:

答案 0 :(得分:4)

试试这个

<强> DEMO

$(document).ready(function() {
    //For numeric
    $(".major_rev").keydown(function(event) {
        // Allow only backspace and delete
        if ( event.keyCode == 46 || event.keyCode == 8) {
            // let it happen, don't do anything

        }
        else {
            // Ensure that it is a number and stop the keypress
            if ((event.keyCode !==9) && (event.keyCode < 48 || event.keyCode > 57 )) {
                event.preventDefault(); 
            }   
                else{

              if($.trim($(this).val()) =='')
            {
                if(event.keyCode == 48){
                event.preventDefault(); 
                }
            }

            }
        }
    });
    $(".minor_rev").keydown(function(event) {
        // Allow only backspace and delete
        if ( event.keyCode == 46 || event.keyCode == 8 ) {
            // let it happen, don't do anything
            if($.trim($(this).val()).length==0)
            {
                if(event.keyCode==48){
                event.preventDefault(); 
                }
            }
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57 ) {
                event.preventDefault(); 
            }   
            else{

              if($.trim($(this).val()) =='')
            {
                if(event.keyCode == 48){
                event.preventDefault(); 
                }
            }
            }
        }
    });
    //For MaxLength
    $(".major_rev").prop("maxlength","4");
    $(".minor_rev").prop("maxlength","4");
});

答案 1 :(得分:1)

如何使用这个简单的检查:

$(document).on('keyup','#testBox', function(event){

    var input = event.currentTarget.value;

    if(input.search(/^0/) != -1){
         alert("you have started with a 0");   
    }
});

<强> jsFiddle

答案 2 :(得分:1)

这有点晚了,但试试这个简单明了的

$(".major_rev").on("keyup", function () {               
  if ($(this).val() == 0) {
  $(this).val(null);                                     
  }                
});

答案 3 :(得分:0)

我认为我们正在寻找正则表达式..

$("input").blur(function(){
    var val = $(this).val();
    if( val.indexOf("0") == 0 ) {
        $(this).val("");
        $(this).attr("placeholder", "Invalid");
    }
});

答案 4 :(得分:0)

Sangrammiklshake的答案对我有所帮助。以下是综合解决方案。

$(document).on('keyup','.major_rev', function(event){

    var input = event.currentTarget.value;

    if(input.search(/^0/) != -1){
         alert("you have started with a 0");   
    }
});
$(document).ready(function() {
    //For numeric
    $(".major_rev").keydown(function(event) {
        // Allow only backspace and delete
        if ( event.keyCode == 46 || event.keyCode == 8) {
            // let it happen, don't do anything

        }
        else {
            // Ensure that it is a number and stop the keypress
            if ((event.keyCode !==9) && (event.keyCode < 48 || event.keyCode > 57 )) {
                event.preventDefault(); 
            }   
                else{

              if($.trim($(this).val()) =='')
            {
                if(event.keyCode == 48){
                event.preventDefault(); 
                }
            }

            }
        }
    });
    $(".minor_rev").keydown(function(event) {
        // Allow only backspace and delete
        if ( event.keyCode == 46 || event.keyCode == 8 ) {
            // let it happen, don't do anything
            if($.trim($(this).val()).length==0)
            {
                if(event.keyCode==48){
                event.preventDefault(); 
                }
            }
        }
        else {
            // Ensure that it is a number and stop the keypress
            if (event.keyCode < 48 || event.keyCode > 57 ) {
                event.preventDefault(); 
            }   
            else{

              if($.trim($(this).val()) =='')
            {
                if(event.keyCode == 48){
                event.preventDefault(); 
                }
            }
            }
        }
    });
    //For MaxLength
    $(".major_rev").prop("maxlength","4");
    $(".minor_rev").prop("maxlength","4");
});

jsFiddle