创建一个<input type =“text”/>只有数字是可输入的?

时间:2009-11-17 06:38:44

标签: javascript jquery input

<input type="text" id="target" />

如何使用jQuery?

5 个答案:

答案 0 :(得分:3)

虽然因为它使用了密钥代码而有点脆弱......但下面的工作会更加直观,因为它完全不可能输入非数字:

$("#target").keydown(function(event) {
    return ( event.keyCode < 32 ||                             // Control characters
             ( event.keyCode >= 48 && event.keyCode <= 57 ) || // Numbers
             event.keyCode == 127 );                           // Delete key
});

注意添加:这实际上不是最好的方法......因为(窗口)ALT + [数字] 132可以将ä输入框中。它应该与keyup事件结合使用,以确保没有输入任何字符, Combined:

$("#target").keydown(function(event) {
    return ( event.keyCode < 32 ||                             // Control characters
             ( event.keyCode >= 48 && event.keyCode <= 57 ) || // Numbers
             event.keyCode == 127 );                           // Delete key
});

$("#target").keyup(function(event) {
    event.target.value = event.target.value.replace(/[^0-9]/g, "");
});

此外,这不适用于此处的num-pad-numbers,因此它肯定比简单的blur()事件更脆弱。

答案 1 :(得分:1)

$("#target").blur(function(event) {
    event.target.value = event.target.value.replace(/[^0-9]/g, "");
});

这也可行:

$("#target").keypress(function(event) {
    event.target.value = event.target.value.replace(/[^0-9]/g, "");
});

答案 2 :(得分:0)

$('input[type=text].someclass').blur(function(event)
{
   event.target.value = event.target.value.replace(/[^0-9]/g, "");
});

答案 3 :(得分:0)

function onlyNumbers(evt) {
    var e = evt;
    if(window.event){ // IE
        var charCode = e.keyCode;
    } else if (e.which) { // Safari 4, Firefox 3.0.4
        var charCode = e.which;
    }
    if (charCode > 31 && (charCode < 48 || charCode > 57))
       return false;
    return true;
}

Source

答案 4 :(得分:-1)

if (!$.browser.mozilla) {
    if (event.keyCode && (event.keyCode < 48 || event.keyCode > 57))
        event.preventDefault();
}
else {
    if (event.charCode && (event.charCode < 48 || event.charCode > 57))
        event.preventDefault();
}