【发布时间】:2013-05-16 14:40:40
【问题描述】:
我正在开发一个使用 Scriptaculous 自动完成器实现自动完成文本字段的项目。在低于 10 的 Internet Explorer 版本中,系统工作正常,但在 10 版和其他浏览器(如 Firefox 或 Chrome)中,自动完成功能存在缺陷。我已经用原型 1.7 将 Scriptaculous 更新到 1.9,但没有任何改变。
<label for="possibleClient">Verfügbare Klienten</label><br>
<input type="text" id="possibleClient" class="fill intellisense"><div id="possibleClientUpdate" class="auto-complete"></div>
<script type="text/javascript" language="javascript" charset="utf-8">
// <![CDATA[
function updateClientList(input,listitem) {
var nodes = document.getElementsByClassName('informal', listitem) || [];
if(nodes.length>0) label = Element.collectTextNodes(nodes[0], listitem);
addToList("chosenClients",input.value,label);
input.value="";
}
var ac = new Ajax.Autocompleter('possibleClient','possibleClientUpdate','/data/clients.php',{paramName: 'search',minChars:1, parameters:'projektIDs=<?php echo $projektID ?>&searchnName=true', select:'selectme', afterUpdateElement: updateClientList});
// ]]>
</script>
我不知道。
[更新]
您好坦克,所有的快速答案。有缺陷是什么意思。我正在更新一个较旧的系统,以便为任何浏览器做好准备。有缺陷意味着自动完成功能不起作用。如果我在较新的浏览器中输入任何内容,则不会发生任何事情。当您激活兼容模式时,它可以在 ie 10 中使用。
系统没有使用 json 文件。 /data/clients.php 返回一个
<ul><li></li></ul>
文字段落。
例如:
<ul><li><span class='informal'>Aicher Jasmin</span> (<span class='selectme'>65</span>)</li><li><span class='informal'>Bader Jacqueline Bernice</span> (<span class='selectme'>77</span>)</li><li><span class='informal'>Freisslich Claudia</span> (<span class='selectme'>78</span>)</li><li><span class='informal'>Goller Sascha</span> (<span class='selectme'>64</span>)</li><li><span class='informal'>Hebein Ilse</span> (<span class='selectme'>75</span>)</li><li><span class='informal'>Hohenwarter Berndt</span> (<span class='selectme'>60</span>)</li><li><span class='informal'>Kanz Bernhard</span> (<span class='selectme'>69</span>)</li><li><span class='informal'>Kohlmaier Angelika</span> (<span class='selectme'>68</span>)</li><li><span class='informal'>Konic Isabella</span> (<span class='selectme'>71</span>)</li><li><span class='informal'>Kosche Karl-Heinz</span> (<span class='selectme'>63</span>)</li><li><span class='informal'>Kreilitsch Jutta</span> (<span class='selectme'>70</span>)</li><li><span class='informal'>Kribitsch Bernhard</span> (<span class='selectme'>61</span>)</li><li><span class='informal'>Lackner Ermelinde</span> (<span class='selectme'>79</span>)</li><li><span class='informal'>Mösslacher Wolfgang</span> (<span class='selectme'>67</span>)</li><li><span class='informal'>Müller Hans</span> (<span class='selectme'>54</span>)</li></ul>
我也不认为数据源是问题所在,因为它适用于旧版浏览器。
如果我在 Firefox 中启动开发者控制台,然后输入:
我看到该过程被调用并且脚本正在从 [07:35:47.367] POST https://myserver.at/data/clients.php [HTTP/1.1 200 OK 45ms] 获取数据
但我没有看到带有自动完成建议的下拉 div。 它可能是一个 css Probleme 吗? 这是自动完成的 css 文件:
div.auto-complete {
position:absolute;
width:250px;
background-color:white;
border:1px solid #888;
margin:1px 1px 0 1px;
padding:0px;
}
div.auto-complete ul {
list-style-type: none;
margin:0px;
padding:0px;
}
div.auto-complete ul li.selected { background-color: #ffb;}
div.auto-complete ul li {
list-style-type: none;
display:block;
margin:0;
padding:2px;
height:22px;
cursor:pointer;
}
【问题讨论】:
-
不确定你做错了什么,但我认为不是浏览器 ajaxdaddy.com/scriptaculous-autocomplete.html 在 Firefox 中对我来说可以正常工作。
-
您需要更具体地了解“缺陷”的含义。它根本不起作用,还是以意想不到的方式起作用?您可以尝试的一件事是打开 Chrome 的 Web 开发人员工具栏(按 F12)并查看控制台选项卡中是否有任何错误消息。您可以在 IE10(按 F12)和 Firefox(我不确定热键,右键单击页面上的任意位置并单击检查元素...)中执行相同操作。
-
/data/clients.php返回什么?在什么内容类型下?另外,尝试原型 1.7.1 -
我已经更新了我的答案,你能检查下拉菜单是否有内容吗?并在控制台中查看是否有任何错误?
标签: php javascript firefox autocomplete scriptaculous