Home >Backend Development >PHP Tutorial >【thinkphp】引用js文件函数报错,直接把函数写在html中使用则正常

【thinkphp】引用js文件函数报错,直接把函数写在html中使用则正常

WBOY
WBOYOriginal
2016-06-23 13:40:001431browse

我在public/admin/js下新建了一个custom.js文件:[code=javascriptfunction validateUserName(){

alert('Yes');
$.post(
"",
{UserName:$("#UserName").val()},
function(returnedData,status){
var result=returnedData;
if(result!=null){
$("#info").html(""+result+"");
}else{
$("#info").html("");
}
}
);
  
}][/code]
里面只有一个函数,在html里引用:

<script type="text/javascript" SRC="__PUBLIC__/admin/js/custom.js"></script>

然后使用
<input type="text" id="UserName" class="half"  name="UserName" onblur="validateUserName()" value="<{$data.UserName}>"/>

每次调用,对话框会出来,关闭对话框就报错:
非法操作:





错误位置



FILE: C:\wamp\www\dianzi\ThinkPHP\Common\functions.php  LINE: 112

112行的函数是这句:
function _404($msg='',$url='') {    APP_DEBUG && throw_exception($msg);


对话框是会弹出来的,不知道什么原因,然后我把这个js文件引用删掉,把这个函数直接写在html中:
<script type="text/javascript">function validateUserName(){		$.post(		"<{:U('Index/Index/Users/validateUserName')}>",		{UserName:$("#UserName").val()},		function(returnedData,status){			var result=returnedData;			if(result!=null){				$("#info").html("<font color=red>"+result+"</font>");			}else{				$("#info").html("");			}		}	);  }</script>

能正常使用,请问这要怎么解决???


回复讨论(解决方案)

你在引入的时候没有引入JQUERY库文件导致的这个问题。

请问是哪个库文件呢,jquery.js这个已经有了,而弹窗出来了说明已经调用了这个函数,难道是$.post还要其他文件吗?

你在引入的时候没有引入JQUERY库文件导致的这个问题。


请问是哪个库文件呢,jquery.js这个已经有了,而弹窗出来了说明已经调用了这个函数,难道是$.post还要其他文件吗?

js放在文件里面,是不是后台的这个方法没找到:U('Index/Index/Users/validateUserName');然后后台直接报错了

js里的这个""有问题哦,你这是外部引入的,tp貌似不会对这个进行模板替换

U方法这个直接放在这里是不行的。我记得我学TP视频的时候,视频里的老师讲过这个问题。好像要用一个变量来保存这个url,然后再传过去。具体不记得了。

url要写在模版里面才能正确的解析成路由地址 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn