jquery在JSP中自动完成多个参数

时间:2012-04-25 05:09:21

标签: jquery jsp autocomplete drop-down-menu url-parameters

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

3 个答案:

答案 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();}
});