JQuery 自动完成代码似乎正确,但不起作用。
代码看起来很简单,我没有看到任何使用 IE8 中的“开发者工具”或 FireFox 中的“firebug”工具的 javascript 错误...
但是,当在输入字段中输入字母(例如,“a”)时,列表框中没有任何内容“下拉”...
如果您发现有什么不对劲,请告诉我。在这一点上,我显然不是“只见树木不见森林”。
这是JSF“复合组件”定义中的片段......
<!-- INTERFACE -->
<cc:interface>
<cc:attribute name="idpref" required="true"/>
<cc:attribute name="items" required="true"/>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<!-- here is the input field -->
<h:inputText type="text" id="#{cc.attrs.idpref}"/>
<!-- here is the javascript -->
<h:outputScript library="js" name="jquery-1.7.2.js" />
<h:outputScript library="js" name="jquery-ui-1.8.21.custom.js" />
<script type="text/javascript" >
var jq = jQuery.noConflict();
jq(document).ready(function()
{
jq(function()
{
var list = #{cc.attrs.items};
var id = "#{cc.attrs.idpref}";
var prependedid = jq('input[id$="' + id + '"]').attr("id");
var comboid = "#" + prependedid;
jq(comboid).autocomplete({
source: list
});
});
});
</script>
</cc:implementation>
这是使用上述复合组件的页面中的视图标记内容片段...
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:util="http://java.sun.com/jsf/composite/util"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<f:view contentType="text/html">
<h:head>
<title>testx</title>
<meta charset="utf-8" />
</h:head>
<h:body prependid="false">
<h:form id="form1" prependId="false">
<util:autoComplete prependId="false"
idpref="aaa"
items="#{refDataController.data}" />
</h:form>
</h:body>
</f:view>
</html>
这是后端Java片段...
package aaa.bbb.ccc.war;
import java.util.Arrays;
import java.util.List;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@Component("refDataController")
@Scope("request")
public class RefDataController
{
public RefDataController()
{
}
private List data = Arrays.asList ("\"Aman\"", "\"Albela\"", "\"Ali\"", "\"Ankit\"", "\"Azam\"", "\"Aryan\"");
public List getData()
{
return data;
}
}
感谢您的任何帮助!
sd