4

テキストエリアを 500 文字に制限したい。このために maxlength 属性を使用しましたが、異なるブラウザー間で互換性の問題がいくつかあります。これを解決するために、JavaScript関数を使用しました

function checkLength(fieldName,limit){

            if(fieldName.value.length >= limit){

                fieldName.value  = fieldName.value.substring(0,limit);
            }
        }

onKeyDownonKeyUpの 2 つのイベントでこの関数を呼び出しています。これで問題は多少解決しますが、長さが 500 文字を超える文字列をコピーして貼り付けると、すべてのテキストが表示され、キーを押したときに 500 にトリミングされます。ちらつきなしでコピー貼り付け中に正確に500文字を表示する方法はありますか?

4

2 に答える 2

0

次のようなことを試すことができます:

            <script language="javascript" type="text/javascript">
            function limitText(limitField, limitCount, limitNum) {
                if (limitField.value.length > limitNum) {
                    limitField.value = limitField.value.substring(0, limitNum);
                    alert("your message exceeds the limit");
                } else {
                    limitCount.value = limitNum - limitField.value.length;
                }
            }
            </script>

            <form name="myform" action="">
                <textarea id="t1" name="description" onpropertychange="limitText(this.form.description,this.form.countdown,500);"  OnInput="limitText(this.form.description,this.form.countdown,500);" onKeyDown="limitText(this.form.description,this.form.countdown,500);" rows="20" cols="40">
                </textarea><br>
               <font size="1">(Maximum characters: 500)<br>
                You have <input readonly type="text" name="countdown" size="3" value="10"> characters left.</font>
            </form>
于 2013-10-21T08:35:05.177 に答える