1

私はtextarea自分のフォームに を持っています。textareaフィールド内のテキストが制限を超えた場合にポップアップ メッセージを表示して、文字数を制限する必要があります。以下は、私が現在使用しているコードです。FF、Chrome、IE8 では正常に動作しますが、IE9 では動作しません。IE9 では、制限を超えると無制限のポップアップが表示されます。

<script language="javascript" type="text/javascript">
function limitText1(limitField,  limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
        alert("Character limit exceeded--please reduce the length of description or use a file attachment.");
    }
}

<cftextarea
    style="font-family:Arial;font-size:10pt;width:465px;" 
    onKeyDown="limitText1(this.form.description,16350);"
    OnInput="limitText1(this.form.description,16350);"
    onpropertychange="limitText1(this.form.description,16350);"
    required="yes"
    message="Please enter Description"
    class="textarea"
    id="description" 
    cols="75" rows="7" 
    name="description" 
    value="#form.description#"
></cftextarea>
4

3 に答える 3

2
<script language="Javascript">
String.prototype.trim = function() {return this.replace(/^\s+|\s+$/g,"");}

    function check_limit(comment_txt, limit_txt,count)
    {

        var tex = document.getElementById(comment_txt).value;
        var len = tex.length;
        if((tex.trim() != '') && (len > count))
        {
                tex = tex.substring(0,count);
                alert("Limit Exceeded");
                document.getElementById(comment_txt).value =tex.trim();
                document.getElementById(limit_txt).value =count-tex.trim().length;
                return false;
        }
        else if(tex.trim() == '')
            document.getElementById(comment_txt).value =tex.trim();
        document.getElementById(limit_txt).value =count-document.getElementById(comment_txt).value.length;
    }
 </script>
于 2012-12-19T13:33:28.867 に答える
2

cftextarea には maxlength 属性があります。単純に使ってみませんか?

最大文字数に達したことをユーザーに伝えたい場合は、単純な js 関数を作成して onblur イベントで呼び出すことができます。現在試みているものよりもはるかに簡単です。

于 2012-12-19T13:11:10.083 に答える
1

私は通常CFFormを使用しませんが...

使用する代わりに

onKeyDown="limitText1(this.form.description,16350);"
OnInput="limitText1(this.form.description,16350);"
onpropertychange="limitText1(this.form.description,16350);"

1 つだけを使用してみるか、onKeyDownまたはonPropertyChange. (onInput は IE 8 以下では機能しません)。

解決策ではないかもしれませんが、少なくともトラブルシューティングのために試してみる価値はあります。

于 2012-12-19T11:26:28.540 に答える