使用另一个下拉列表使用jquery填充下拉列表

时间:2013-12-17 14:33:29

标签: jquery html forms jsp

我是jsp和jquery的初学者,但我需要你的帮助才能做点什么。

我正在从我的portlet中检索所有实体大学,并且我正在使用这样的选择:

<%
List<University> us = UniversityLocalServiceUtil.getUniversitys(0, UniversityLocalServiceUtil.getUniversitysCount());
%>

 <div id="wrap">
<p>University</p>

<div>
    <label><span>Select an university:</span> <select
        name="unis" style="width: 259px">
            <option value="">-- SELECT --</option>
            <%
                for (University u : us) {
            %>
            <option value="<%=String.valueOf(u.getIdUniversity())%>">
                <%=u.getName()%>
            </option>
            <%
                }
            %>
    </select> </label>
</div>

然后我有一个隐藏的div,我想透露并填充所选大学的所有院系。

 <div id="wraptwo">
 <p>Faculty</p>
    <div>
    <label><span>Select a Faculty:</span> <select
        name="facs" style="width: 259px">
            <option value="">-- SELECT --</option>
        <!-- TODO HERE -->  
    </select> </label>
</div>

我用脚本显示它:

<script>
$("#wraptwo").hide();
$('select[name="unis"]').change(function() {
    var uni = $(this).val();
    if (uni.length >= 1) {
        $("#wraptwo").show();

    } else {
        $("#wraptwo").hide();
    }
});

我现在的问题是我需要名为“unis”的选择的值,以便使用以下方法检索所选大学的所有院系:

University u = UniversityLocalServiceUtil.getUniversity(primary_key_of_the_university);
List<Faculty> fs = u.getFacultys();

2 个答案:

答案 0 :(得分:1)

尝试this

$( "select.unis option:selected").val();


要将值传递回服务器,您可以使用ajax调用。像这样:

var uni = $( "select.unis option:selected").val();

$.ajax({
    url: '/your-url', // path to your url which gets this ajax request
    method: 'get', // or a http method you want to use
    data: {
        uni
    },
    success: function(response) {
        alert(response);
    }
});

语法可能不正确,但这是它的要点。

答案 1 :(得分:0)

我想你在寻找这个?

var uni = $(this).val();
$("<option></option").val(uni).text(uni).appendTo($("select.facs"))