0

入力フィールドがオーバーフローし始めた場合にjQueryで検出する方法はありますか? <textarea></textarea>それとも、これまたはそのようなことをしなければなりませんか?

私はすでにそれを試しました:

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

<script>
    $(document).ready(function() {
        $("input").keyup(function() {
            var maxLen = 3
            var box = document.getElementById('inputField')[0];
            if (box.value.length > maxLen - 1) {
                alert('stop');
            }
        });
    });
</script>

しかし、それは実際には機能しません。

4

2 に答える 2

0

いくつかの変更を加えましたが、重要なのは通話[0]からを削除することです。getElementById

$(document).ready(function() {
    $("input").keyup(function() {
        var maxLen = 3;
        var box = document.getElementById('inputField');
        if (box.value.length >= maxLen) {
            alert('stop');
        }
    });
});

純粋な HTML 検証にも頼ることができます:

<input id="inputField" type="text" maxlength="3" />

そして HTML5 検証属性...

<input id="inputField" type="text" maxlength="3" required />

誰かが入力するときにテキストフィールドを拡張したいだけなら、これを使うことができます:

この入力を考えると:

<p>Test Input: <input type="text" size="4" name="test" id="test" /></p>

これは、入力すると展開されます。

var testInput = document.getElementById('test');

var setLength = function () {
    testInput.size = testInput.value.length ? testInput.value.length : 1;
};

testInput.onkeyup = setLength;

setLength();
于 2013-10-01T15:26:00.853 に答える
0

ユーザー入力を制限することが目的の場合は、jquery を使用する必要はありません。次のものも使用できます。

<input maxlength="number">

このW3schoolsページでそれについて読んでください

jQuery を使用する必要がある場合は、次のようにすることができます。

$('input#input_amount').keyup(function () {
        $(this).val(function (i, val) {

            if (val.length>3){
                alert('stop');
            };
            return val;
        });
    });

ここで実際に見てください:http://jsfiddle.net/BkZcq/

この回答を編集しました(コメントを参照):

$('input#input_amount').keyup(function () {
        $(this).val(function (i, val) {

            if (val.length>3){
                $(this).attr("size", val.length +1);
            };
            return val;
        });
    });
于 2013-10-01T15:27:29.687 に答える