Jquery选择了多个选择麻烦

时间:2013-08-16 11:22:22

标签: jquery jquery-chosen

我有四个下载列表加载到第一页加载,它们看起来都像这样:

@Html.LabelFor(m => m.SelectedAgencies, "Agencies") <br />
@Html.DropDownListFor(m => m.SelectedAgencies, Model.AllAgencies, new { @class = "chosen-select", multiple = "multiple", style = "width: 350px;" })
<button type="submit" id="btnShow" name="show">Show</button>

单击该按钮会在同一视图中生成结果,下拉列表是一个过滤器。

javascript中的新手总数,到目前为止几乎没有这样做:

<script type="text/javascript">
    $(function () {
        $('.chosen-select').chosen();
    });
    $(document).ready(function () {
    if ($('#AllAgenciesSelected').is(':checked')) {
            $("#SelectedAgencies_chosen").hide();
        }
    $("#AllAgenciesSelected").click(function () {
            $("#SelectedAgencies_chosen").toggle(!this.checked);
        });
    });
</script>

除了用户返回此页面的部分外,一切似乎都能正常工作。如果在下拉列表中选择了多个参数,则在重新加载页面时,只选择最后一个参数。我正在尝试将选定的值保存在某个地方,并且在再次加载页面后,下拉列表中的选项将填充保存的结果:

    var agenciesVal;
    $("#btnShow").click(function () {
        agenciesVal = $("#SelectedAgencies").value();
    });

    $(document).ready(function () {
    //code from before
    if (agenciesVal!=null) {
            $('#SelectedAgencies').val = agenciesVal;
        }
    });

我对jquery很新,尝试这样的事情是否有意义?是否有更简单,更优雅的方法来实现这一目标?

2 个答案:

答案 0 :(得分:1)

收集所选选项:

$(document).ready(function () {
    var agenciesVal = [];
    $("#btnShow").click(function () {
        agenciesVal[] = $.each("#SelectedAgencies option"), function( i, v ){
            $(this).index(i).attr("selected") == true; 
        });
    });
});

恢复所选选项..

$(document).ready(function () {
    if (agenciesVal.length != null) {
        $.each(agenciesVal, function( i, v ){
            $('#SelectedAgencies option').index(i).attr('selected', true);
        });
    }
});

答案 1 :(得分:0)

我认为他正在进行页面刷新,因为

<button type="submit">

您当前的代码是否有效?