4

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

我怎样才能阻止用户,以便当他们尝试输入第三个字符时,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;
        }
    });
4

3 回答 3

18
<input type="text" maxlength="2">
于 2012-05-25T14:32:02.623 回答
8

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

$("#monthFromTextBox").on('keydown', function() {
    if (this.value.length > 1) {
        return false;
    }
});​
于 2012-05-25T14:35:52.687 回答
1

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

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

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

这样,即使 JavaScript 被关闭,你也能被覆盖。

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

于 2012-05-25T14:34:47.273 回答