当前位置: 代码迷 >> PHP >> 【thinkphp】引述js文件函数报错,直接把函数写在html中使用则正常
  详细解决方案

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

热度:60   发布时间:2016-04-28 18:24:06.0
【thinkphp】引用js文件函数报错,直接把函数写在html中使用则正常
我在public/admin/js下新建了一个custom.js文件:[code=javascriptfunction validateUserName(){

alert('Yes');
$.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("");
}
}
);
  
}][/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>

能正常使用,请问这要怎么解决???
------解决思路----------------------
js里的这个"<{:U('Index/Index/Users/validateUserName')}>"有问题哦,你这是外部引入的,tp貌似不会对这个进行模板替换
------解决思路----------------------
U方法这个直接放在这里是不行的。我记得我学TP视频的时候,视频里的老师讲过这个问题。好像要用一个变量来保存这个url,然后再传过去。具体不记得了。
  相关解决方案