【发布时间】:2014-07-03 19:54:25
【问题描述】:
未捕获的引用错误:未定义limitText
仅从匹配结果的数量来看,我发现很多其他人都遇到过这个问题 - 尽管解决方案是根据具体情况运行的。
这基本上是一个功能,用于在您输入时告诉您在给定表单中还剩下多少个字符 - “您还剩下 XXX 个字符”。
Javascript:
"use strict"; // <-- This was a suggested remedy, did nothing.
function limitText(limitField, limitCount, limitNum) {
if (limitField.value.length > limitNum) {
limitField.value = limitField.value.substring(0, limitNum);
} else {
limitCount.value = limitNum - limitField.value.length;
}
}
HTML(不相关的 PHP 省略):
<textarea name="BlogPost" maxlength="5000" cols="100" rows="20"
onKeyDown="limitText(this.form.BlogPost,this.form.countdown,5000);"
onKeyUp="limitText(this.form.BlogPost,this.form.countdown,5000);" required></textarea>
<font size="1">(Maximum characters: 5000)<br>
You have <input readonly type="text" name="countdown" size="3" value="5000">
characters left.</font>
将我的浏览器置于“调试模式”实际上会导致脚本正常运行 - 尽管我真的不能指望任何运行该应用程序的用户也这样做。如果将脚本直接放入带有<script></script> 的文档中,它也可以工作,尽管我正在使用的系统责骂这是“不好的做法”,因为您希望通过它的花哨模块系统加载脚本。 (媒体维基)
有什么想法吗?
【问题讨论】:
-
脚本标签是在正文的顶部还是在头部?
-
你确定脚本在使用 textarea 之前已经加载了吗?
-
确保
limitText在全局范围内或使用不同的方法绑定事件处理程序:quirksmode.org/js/introevents.html。您收到错误是因为您有语法错误并且代码无法执行,或者因为该函数不在全局范围内。 -
现在它在顶部,虽然我都试过了,但没什么区别。 @wbennett - 是的。
-
limitText 在哪里定义?它在某个 .js 文件中吗?
标签: javascript html mediawiki referenceerror