最初のページの読み込み時に読み込まれる 4 つのドロップダウン リストがあります。それらはすべて次のようになります。
@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を初めて使用しますが、このようなことを試みることは理にかなっていますか? これを達成するためのより簡単でエレガントな方法はありますか?