我的表单中有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>
答案 0 :(得分:2)
cftextarea有一个maxlenghth属性。你为什么不简单地使用它?
如果您想告诉用户他达到了最大字符数,您可以编写一个简单的js函数来执行此操作并在onblur事件中调用它。它比你现在尝试的要简单得多。
答案 1 :(得分:1)
我通常不使用CFForm但是......
而不是使用
onKeyDown="limitText1(this.form.description,16350);"
OnInput="limitText1(this.form.description,16350);"
onpropertychange="limitText1(this.form.description,16350);"
尝试使用一个,onKeyDown
或onPropertyChange
。 (onInput不适用于IE 8或更低版本。)
可能不是解决方案,但值得一试,至少是为了解决问题。