如何使用jquery-ajax使用复选框进行级联下拉列表?



尝试使用 jquery ajax 进行级联下拉列表(国家、州、城市( 我使用过David Stutzs multiselect jquery。 在更改国家/地区时,我正在使用jquery ajax从控制器获取状态列表并更改状态的选项。 我能够根据国家/地区从控制器获取州列表,但是 $('#state'(.html(状态(;不会更改状态的内容。

当我不写 $('#state'(.multiselect({ 包括全选选项:真 });在开始时但在 $('#state'(.html(状态(之后;它工作一次。

我猜在应用这个 $('#state'(.multiselect({ 包括全选选项:真 });状态的内容未更改。

<body>
<div>
<select id="country" name="country" multiple="multiple">
@if (ViewBag.country != null)
{
foreach (var item in ViewBag.country)
{
<option>@item</option>
}
}
</select>
<select id="state" name="state" multiple="multiple">
</select>
</div>
<br /><br /><br /><br />
<div id="countrycontent">
</div>
<br /><br /><br /><br />
<div id="statecontent">
</div>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
<link href="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/css/bootstrap-multiselect.css" rel="stylesheet" type="text/css" />
<script src="http://cdn.rawgit.com/davidstutz/bootstrap-multiselect/master/dist/js/bootstrap-multiselect.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
//to enable multiselect dropdown with checkboxes
$('#country').multiselect({
includeSelectAllOption: true
});
$('#state').multiselect({
includeSelectAllOption: true
});
//invokes when change event happens on country dropdown
$('#country').on('change', function () {
var selected = $("#country option:selected");
var message = "";
var country = [];
var i = 0;

selected.each(function () {
country[i] = $(this).val();//gets selected countries
i++;
});
if (country != null) {
//gets states based on selected countries
$.ajax({
type: 'post',
url: '../Home/GetState',
data: { country },
success: function (result) {
var state = '';
var message = '';
if (result != null) {
for (var i = 0; i < result.length; i++) {
message += result[i] + '<br/>';
state += '<option>' + result[i] + '</option>';
}
}
$('#countrycontent').html(message);
$('#state').html(state); //change state's values based on selected countries
}
});
}

});
});
</script>

我想要的是,当国家/地区的选择发生变化时,状态的选项必须根据所选国家/地区进行更改

我认为你应该使用

$('#state').multiselect('rebuild');

$('#state').html(state);之后 也许它会有所帮助。

最新更新