4

「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;
        }
    });
4

3 に答える 3

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

落ち着きのために...あなたが本当に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 に答える