我有四个在第一页加载时加载的下拉列表,它们看起来都像这样:
@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真的很陌生,尝试这样的事情是否有意义?有没有更简单、更优雅的方式来实现这一点?