如何防止用户使用JavaScript和JQuery键入超过2位数

时间:2012-05-25 14:30:17

标签: javascript jquery validation

我有一个包含“From”月份的文本框。 (仅允许1到12之间的值)

我如何阻止用户,以便当他们尝试键入第3个字符时,javascript会阻止用户输入超过2位的数字?

这是我到目前为止所尝试的但是我无法得到理想的结果(以下脚本根本不起作用)

    $("#monthFromTextBox").bind("change", function (event) {
        var regex = /^\d{1,2}$/g;
        var monthFrom = $(this).find(".monthFrom").text();
        var yearFrom = $(this).find(".yearFrom").text();
        var monthTo = $(this).find(".monthTo").text();
        var yearTo = $(this).find(".yearTo").text();

        // Allow only 1 or 2 digits only
        if (regex.test(monthFrom) === false) {
            event.preventDefault();
            // alert("Month From value should have 1 or 2 digits only");
            return false;
        }
    });

3 个答案:

答案 0 :(得分:17)

<input type="text" maxlength="2">

答案 1 :(得分:7)

对于luls ...如果你真的想要JS答案..

$("#monthFromTextBox").on('keydown', function() {
    if (this.value.length > 1) {
        return false;
    }
});​

答案 2 :(得分:1)

我知道您要求使用JavaScript解决方案,但我认为您不需要。

为什么不简单地限制HTML中的文本框:

<input type="text" maxlength="2" size="10" value="" name="monthFromTextBox">

这样,即使JavaScript已关闭,您也会受到保护。

如果这是一个重要的限制,请记住在服务器端进行验证。