带静态字符e输入的文本框数字和带javascript的负整数



我有一个带有数字输入的文本框。这是我的javascript设置为数字文本框。但当我尝试输入字母时,"e"是允许的。问题:我想做的是不允许使用字母,只允许使用数字,不允许使用负整数。

HTML:

<input type="numeric" id="usrid" name="usrid" placeholder="Enter number">

Javascript:

$(document).ready(function() {
    $("#usrid").numeric();
});

您可以在输入中使用type="number"和min=0属性来强制验证这些字段:

<input type="number" id="usrid" name="usrid" min=0 placeholder="Enter number">

但是,这不会阻止在输入字段中输入负数或非数字字符。为此,您需要绑定一个javascript事件:

$('#usrid').bind('keypress', function (event) {
    var regex = new RegExp("^[0-9]+$");
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
    if (!regex.test(key)) {
       event.preventDefault();
       return false;
    }
});
you can try this
   <form>
      Quantity (between 1 and 5):
      <input type="number" name="quantity" min="1" max="5"><br> 
      <input type="submit">
    </form>

在这个页面中,你可以在html中找到更多关于数字限制的例子http://www.w3schools.com/tags/att_input_max.asp

如果你只想输入数字,那么输入类型应该是数字,就像下面的一样

<input type="number" id="usrid" name="usrid" placeholder="Enter number">

但它采用了字母"e",它代表指数值。你最好尝试以下方法,使用js在"keypress"上验证输入

HTML代码:

 <input type="input" id="usrid" name="usrid" placeholder="Enter number">

JavaScript代码:

<script type="text/javascript">
 $(document).ready(function() {
$('[id^=usrid]').keypress(validateNumber);
});
function validateNumber(e) {
    var key = window.e ? e.keyCode : e.which;
    if (e.keyCode === 8 || e.keyCode === 46
        || e.keyCode === 37 || e.keyCode === 39) {
        return true;
    }
    else if ( key < 48 || key > 57 ) {
        return false;
    }
    else return true;
};
    </script>

最新更新