我使用JSP,我想传递两个参数以及jquery自动完成。我的第二个参数是选择框的值。我使用了以下代码,但我只获得了选项中的第一个值。我检查了返回选择框值的函数,它只在页面加载时调用。有什么方法可以解决我的问题吗?
/* inside my page */
jQuery(function() {
$("#branch").autocomplete("getbranchdetails.jsp", {
extraParams: {
filter: getDropdownValue()
}
});
});
function getDropdownValue() {
var compId=document.getElementById("company").value;
return compId;
}
/* inside getbranchdetails.jsp */
<%
String company=request.getParameter("filter");
System.out.println("company :"+company);
getbranchdetails db=new getbranchdetails();
String query = request.getParameter("q");
List<String> agent = db.getData(query,brtype);
Iterator<String> iterator = agent.iterator();
while(iterator.hasNext()) {
String agents = (String)iterator.next();
out.println(agents);
}
%>
我也尝试了以下链接,但没有运气 http://123code.blogspot.in/2010/09/jquery-autocomplete-plugin-using.html
答案 0 :(得分:1)
改变这个:
$("#branch").autocomplete("getbranchdetails.jsp");
extraParams: {
filter: getDropdownValue()
}
});
到
$("#branch").autocomplete("getbranchdetails.jsp", {
extraParams: {
filter: getDropdownValue()
}
});
答案 1 :(得分:0)
查看此jsFiddle ... http://jsfiddle.net/PTeMy/
在自动完成中,源可以定义为函数调用。使用它,你应该能够建立你想要的自动完成列表。
例如......
HTML
<input id="auto" type="text">
must contain....
<select>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
<option value="f">f</option>
<option value="g">g</option>
</select>
脚本
$(document).ready(function(){
$('#auto').autocomplete({
source: getTags()
});
});
function getTags(){
var tags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
tags = $.grep(tags, function(t) {
return t.indexOf($('select').val()) > 0;
});
return tags;
}
答案 2 :(得分:0)
试试这个......
$('#branch').autocomplete('getbranchdetails.jsp', {
mustMatch: false
});
$('#branch').setOptions({
extraParams:{filter: function(){return $('#company').val();}
});