Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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/loops/2.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_Jquery - Fatal编程技术网

Javascript 函数可以工作,但会产生错误

Javascript 函数可以工作,但会产生错误,javascript,jquery,Javascript,Jquery,下面的函数工作得很好。然而,它在控制台中给出错误,并阻止jqueryui工作 function removenonbtwchars(input){ input = input.toUpperCase(); input = input.replace(/\W/g, ''); input = input.substring(0,16); return input; } 错误: Uncaught TypeError: Cannot call method 'toU

下面的函数工作得很好。然而,它在控制台中给出错误,并阻止jqueryui工作

function removenonbtwchars(input){

    input = input.toUpperCase();
    input = input.replace(/\W/g, '');
    input = input.substring(0,16);

    return input;
}
错误:

Uncaught TypeError: Cannot call method 'toUpperCase' of undefined scripts_V2.js:1924
removenonbtwchars scripts_V2.js:1924
(anonymous function) scripts_V2.js:1934
fire jquery-1.9.1.js:1037
self.fireWith jquery-1.9.1.js:1148
jQuery.extend.ready jquery-1.9.1.js:433
completed

有人有主意吗

您需要使用一些
字符串调用此函数

var input = removenonbtwchars("some thing");
如果您使用某个变量调用它,请尝试以下操作

var input = '';
if ( $.trim(data) != '' ) {
    input = removenonbtwchars(data);
}

但是请记住,变量
data
应该是
string
,因为
toUpperCase()
是字符串类的一种方法较短版本,在传递错误值时返回空字符串(如
未定义
):


我遇到了几乎相同的错误,最后我发现


我没有在“}”和“);”之间插入“()”,在拥有该方法的对象的定义末尾插入“()”。

错误是不言自明的<当传递给函数时,code>input
undefined
。问题可能在于函数调用的位置:您传递的是undefined。“以下函数工作正常。”不,它没有,这是观察错误。如果您遇到该错误,则该函数在其第一行失败,永远不会完成,并中断对任何调用它的处理。@T.J.Crowder好吧,这可能是预期的行为。或者可能是它被调用两次,一次使用值,另一次使用未定义的值。。。。很多未知数感谢这帮我找到了问题所在,函数确实是在没有插入字符串的页面上调用的。因为这几乎是相同的错误,您认为这可能是解决OP的函数问题的方法吗?
function removenonbtwchars(input){
    return input ? input.toUpperCase().replace(/\W/g, '').substring(0,16) : "";
}