Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:*此处的函数*未定义_Javascript_Html_Mediawiki_Referenceerror - Fatal编程技术网

Javascript 未捕获引用错误:*此处的函数*未定义

Javascript 未捕获引用错误:*此处的函数*未定义,javascript,html,mediawiki,referenceerror,Javascript,Html,Mediawiki,Referenceerror,未捕获引用错误:未定义limitText 仅从匹配结果的数量来看,我看到许多其他人也有这个问题——尽管解决方案是根据具体情况运行的 这基本上是一个函数,用于告诉您在键入“您还有XXX个字符”时,给定表单中还剩下多少字符 Javascript: "use strict"; // <-- This was a suggested remedy, did nothing. function limitText(limitField, limitCount, limitNum) { if

未捕获引用错误:未定义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;
    }
}
“严格使用”//limitNum){
limitField.value=limitField.value.substring(0,limitNum);
}否则{
limitCount.value=limitNum-limitField.value.length;
}
}
HTML(省略):


(最大字符数:5000)
你有 剩下的字符。
将我的浏览器置于“调试模式”实际上会使脚本正常工作,但我真的不希望任何运行应用程序的用户也这样做。如果将脚本直接放入带有
的文档中,它也会起作用,尽管我使用的系统指责这是“错误的做法”,因为您需要通过它奇特的模块系统加载脚本。(Mediawiki)


有什么想法吗?

使用
onKeyDown
onkeydup
(您错过了表单元素)的第一次迭代-

代码

(function (global) {
    global.limitText = limitText;
    function limitText(limitField, limitCount, limitNum) {
        if (limitField.value.length > limitNum) {
            limitField.value = limitField.value.substring(0, limitNum);
        } else {
            limitCount.value = limitNum - limitField.value.length;
        }
    }
}(window));

这很有趣,因为
limitText
应该是开箱即用的全局标记。

脚本标记是在主体的顶部还是在头部?是否确定在使用textarea之前加载脚本?确保
limitText
在全局范围内,或者使用其他方法绑定事件处理程序:。出现错误的原因可能是语法错误,代码无法执行,也可能是函数不在全局范围内。现在它位于顶部,尽管我已经尝试了这两种方法,但没有任何区别@wbennett-是的。文本在哪里定义?它在某个.js文件中吗?我仍然对此感到困惑!我差点因为这个小小的挫折而把笔记本电脑扔出窗外。谢谢你的回答,整个Mediawiki IRC都被难住了。
(function (global) {
    global.limitText = limitText;
    function limitText(limitField, limitCount, limitNum) {
        if (limitField.value.length > limitNum) {
            limitField.value = limitField.value.substring(0, limitNum);
        } else {
            limitCount.value = limitNum - limitField.value.length;
        }
    }
}(window));