1

我的表格中有一个textareatextarea如果字段中的文本超过限制,我需要通过弹出消息来限制字符数。以下是我现在使用的代码。它在 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

cftextarea 有一个 maxlenghth 属性。你为什么不简单地使用它?

如果你想告诉用户他达到了最大字符数,你可以编写一个简单的 js 函数来做到这一点,并在 onblur 事件中调用它。它比您当前尝试的要简单得多。

于 2012-12-19T13:11:10.083 回答
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 回答
1

我通常不使用 CFForm 但是...

而不是使用

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

尝试只使用一个,onKeyDownonPropertyChange. (onInput 不适用于 IE 8 或更低版本)。

可能不是解决方案,但值得一试,至少对于故障排除而言。

于 2012-12-19T11:26:28.540 回答