首页 >后端开发 >php教程 >【thinkphp】引用js文件函数报错,直接把函数写在html中使用则正常

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

WBOY
WBOY原创
2016-06-23 13:40:001429浏览

我在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要写在模版里面才能正确的解析成路由地址 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn