如何避免输入类型中的最小值为0?

时间:2014-03-14 11:00:47

标签: javascript jquery html5

我想避免输入类型的最小值为0。 我正在使用以下jquery但它允许输入0。

$('input.numeric').bind('keypress', function (e) {
    return (e.which != 8 && e.which > 0 && (e.which < 48 || e.which > 57)) ? false : true;
})

我尝试使用html-5设置属性type =&#34; number&#34;但不幸的是莫兹拉不支持它。

我只是希望我的输入类型接受除0以外的数字其他格式,而不是十进制或其他任何东西。

2 个答案:

答案 0 :(得分:2)

通过以直接且更易读的方式重构您的return语句,您可以获得以下内容:

&#13;
&#13;
    $('input.numeric').bind('keypress', function (e) {
         return (e.which > 48 && e.which <= 57)            // If it's a number between 1 and 9
                 || (e.which == 48 && $(this).val() != "") // Or 0 and the field isn't empty
                 || e.which == 8;                          // Or backspace
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Type a number: <input class="numeric" type="text" />
&#13;
&#13;
&#13; 请注意,此验证不允许用户在您的字段中使用方向箭头...而且服务器端验证始终是必需的,因为用户可以禁用JS。即使Firefox不支持它,您也应该使用type="number"

答案 1 :(得分:1)

你也可以这样做;
<input type='number' min='1'>

修改

$("input.numeric").focusout(function() {
    if($("input.numeric").val() < 1){
        $("input.numeric").val(1);
    }
});