-2

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

所以允许 4、40、4440 但不允许 04。

检查这个小提琴,我在其中设置了其他几个限制,例如只允许数值,长度为 4。现在我想添加与 0 相关的限制。

如何使用 jQuery 做到这一点?

HTML

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

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

5 回答 5

4

试试这个

演示

$(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");
});
于 2013-08-08T10:34:20.990 回答
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

于 2013-08-08T10:40:52.630 回答
1

有点晚了,但试试这个简单易行

$(".major_rev").on("keyup", function () {               
  if ($(this).val() == 0) {
  $(this).val(null);                                     
  }                
});
于 2017-06-12T19:52:03.317 回答
0

我想我们在这里看正则表达式..

$("input").blur(function(){
    var val = $(this).val();
    if( val.indexOf("0") == 0 ) {
        $(this).val("");
        $(this).attr("placeholder", "Invalid");
    }
});
于 2013-08-08T10:40:38.203 回答
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

于 2013-08-12T04:03:06.243 回答