如何创建仅接受200到500之间的数字的输入字段?

时间:2016-10-10 12:41:03

标签: jquery

我想创建一个输入字段,用户只能插入一个大于200且低于500的数字。我的问题是如果我想写例如" 230"然后这个领域不允许我这样做,因为它认为我想写'" 2"。



var t = false

$('.myinput').focus(function () {
    var $this = $(this)
    
    t = setInterval(

    function () {
        if (($this.val() < 200 || $this.val() > 500)) {
            if ($this.val() < 200) {
                $this.val(200)
            }

            if ($this.val() > 500) {
                $this.val(500)
            }
            $('.error').fadeIn(1000, function () {
                $(this).fadeOut(500)
            })
        }
    }, 50)
})

$('.myinput').blur(function () {
    if (t != false) {
        window.clearInterval(t)
        t = false;
    }
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="myinput" type="number" value="200" min="200" max="500">
<p class="error" style="display:none">Accepting Only values 200-500</p>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

为什么不使用范围?

$('p').text($('input[type="range"]').val());
$('input[type="range"]').on('change', function(){
    val = $('input[type="range"]').val();
    $('p').text(val);
});
<script src="http://code.jquery.com/jquery-3.1.1.js"></script> 
<input type="range" min="200" max="500"/>
<p></p>

答案 1 :(得分:1)

尝试以下代码,

$('.myinput').keypress(function(event){

        if(event.which != 8 && isNaN(String.fromCharCode(event.which))){
            event.preventDefault(); //stop character from entering input
        }
        var value = $(this).val();

        if (value > 200 && value < 500) { // check numbers between 200 and 500
            ..
        }

        $('.error').fadeIn(1000, function () {
            $(this).fadeOut(500)
        })

    });

答案 2 :(得分:0)

使用指定最小/最大的number输入字段

&#13;
&#13;
<input type="number" min="200" max="500" />
&#13;
&#13;
&#13;