我有个问题希望你们能帮我解决。
我想在这个函数中使用autocomplete。在下面的帮助下,我设法删除了这个错误,但现在它在使用 AJAX 时不起作用。就像我之前写的,底部脚本(inbox.php)加载在顶部脚本(home.php)内部。
我发现如果我单独打开页面,自动完成脚本是可以工作的(所以只需要转到localhost/inbox.php),但是当使用 AJAX 时,它就失去了这个功能。这就是为什么我现在认为问题出在Ajax脚本上,可以在示例的最后部分找到。
- 主页.php(主页面)*
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="homeV2.css" type="text/css" media="screen">
<script type="text/javascript" src="javascript/index.js"></script>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script>
<script type='text/javascript' src="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/jquery-ui.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.ui/1.10.0/themes/black-tie/jquery-ui.css">
<title>
Homepage Westpop Intranet
</title>
<script>
window.onload = function()
{
showHome(<?=$gid?>);
refreshChat();
countdown();
}
</script>
</head>
- inbox.php(此页面使用 AJAX 加载到home.php中)*
<script type="text/javascript">
var names = ['hi', 'bye', 'foo', 'bar'];
$(document).ready(function() {
$("#inputNaam").autocomplete({
source: names
});
});
</script>
............ //some other script
</div>
</div>
<div id='profielNieuwBericht'>
<div id='nieuwBerichtKop'>
Nieuw bericht
</div>
<table>
<tr>
<td>Aan: </td>
<td><input type='text' class='inputNieuwBericht' id='inputNaam' /> </td>
</tr>
<tr>
<td> Onderwerp: </td>
<td> <input type='text' class='inputNieuwBericht' id='inputOnderwerp' /></td>
</table>
<textarea id='BerichtTextarea'></textarea></br>
<input type='button' id='BerichtManagementButton' value='Stuur' />
</div>
</div>
- 这是 AJAX 部分,当点击home.php中的按钮时调用该脚本(不包括链接,但通过onClick ='showInbox(id)'调用)。*
function showInbox(id){
if (id==''){
document.getElementById("middenpag").innerHTML="";
return;
}
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("middenpag").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","inbox.php?id="+id,true);
xmlhttp.send();
}
我希望你们能看到我在这里做错了什么!谢谢:)
2条答案
按热度按时间ivqmmu1c1#
正如评论中所呼吁的,不要包含一个以上的jQuery库,选择一个你想要/需要的版本并使用它,你将包含jQuery-ui版本1.10.0,这实际上是最新的和only compatible with jQuery core 1.6+,所以去掉1.3.0包含。
您正在从
onkeydown
内联事件调用home.php中定义的自定义autocomplete()
方法。这是不必要的,您声明的整个autocomplete()
方法也是如此。从basic autocomplete example开始,您需要做的唯一代码如下所示:配置文件. php html
在您的示例中,我发现您还遗漏了input元素的结束标记,而且,如果您将其作为表单的一部分提交,您需要填写输入的
name=''
属性,否则处理表单提交的服务器脚本将无法从请求中获取变量。javascript数组声明--如果你只在profile.php中使用它,那么就把它放在那里;如果你在不同的包含文件中重复使用相同的自动完成选项,那么就把它放在home.php中;或者把它放在一个单独的.php文件中,你可以从任何最终使用它的文件中
include_once
它。javascript autocomplete绑定--每次autocomplete绑定一次,使用
document.ready
处理程序,不要尝试在onkeydown内联事件中使用它。这样就完成了。最后,正如其他人提到的,不要发布代码的截图。复制/粘贴你的代码,缩进它,使它格式化为代码,并指出错误发生在哪一行。另外,你应该包括profile.php所在的代码段。你对它如何工作的描述是不够的。
底部图片(profiel.php)加载到顶部图片(home.php)的脚本中。
这可能是一个iFrame,一个php包含或要求,任何数量的javascript/ AJAX 加载等,所有这些都有不同的结果,代码将需要如何工作。
jvidinwx2#
我有一个解决那个问题的办法。
在我的程序中,问题是template.tpl文件中有重复的jQuery
我在模板中添加了新的jquery.min.js用于自动完成,
我发现问题是(.. bla bla object#()没有方法...),问题的关键是...
所以我禁用了链接,它工作了。