限制输入到文本框:仅限数字(可以放置负号,只有一个小数点)

时间:2014-02-10 14:19:07

标签: javascript jquery

如何限制输入文本框,限制:

  • 只有数字
  • 只有一个时期
  • 只能在开头添加负号/减号

2 个答案:

答案 0 :(得分:1)

以下是代码:

<强> HTML

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

<强>的Javascript

var main = document.getElementById('main');
main.onkeydown = codeFunc;

function codeFunc(e) {
    var code = e.which || e.keyCode;
    var value = e.currentTarget.value;
    var letter = String.fromCharCode(code);
    codeFunc.isNegative = value.indexOf("-") > -1;
    codeFunc.isMiddle = value.length != 0;
    var letter = String.fromCharCode(code);
    if (letter == "-" && !codeFunc.isNegative && !codeFunc.isMiddle) {
        codeFunc.isMiddle = true;
        codeFunc.isNegative = true;
        return true;
    } else if (letter == "¾" && !codeFunc.isDecimal) {
        codeFunc.isMiddle = true;
        codeFunc.isDecimal = true;
        return true;
    }
    var test = /[\d\b]+/.test(letter);
    if (!codeFunc.isMiddle) {
        codeFunc.isMiddle = test;
        return codeFunc.isMiddle;
    }
    return test;
}

<强> JSFIDDLE

答案 1 :(得分:0)

您可以使用正则表达式验证文本框的keydown事件的输入:

<强> REGEX

/^-?\d{2}(\.\d+)?$/

作为旁注,对JavaScript和jQuery进行一些研究。