2

我使用 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

4

3 回答 3

1

改变这个:

$("#branch").autocomplete("getbranchdetails.jsp");
extraParams: {
    filter: getDropdownValue()
}
}); 

$("#branch").autocomplete("getbranchdetails.jsp", {
    extraParams: {
        filter: getDropdownValue()
    }
});
于 2012-04-27T15:03:01.170 回答
0

尝试这个...

$('#branch').autocomplete('getbranchdetails.jsp', {
    mustMatch: false
});

$('#branch').setOptions({
    extraParams:{filter: function(){return $('#company').val();}
});
于 2012-04-27T15:03:34.220 回答
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;
}

​
于 2012-04-27T14:41:24.510 回答