我有一个dropdownlistfor和下面的代码按预期工作(和StateId类似的块):
$('#CountryId').change(function () {
$.getJSON('@Url.Action("StateList", "Manage")', {id: $('#CountryId').val()}, function (data) {
var items = '<option value="">Select a State</option>';
$.each(data, function (i, state) {
items += "<option value='" + state.Value + "'>" + state.Text + "</option>";
});
$('#StateId').html(items);
$('#CityId').html('<option value="">Select a City2</option>');
});
});
但是,如果将国家/地区设置为默认值(之前已设置为其他内容),则不会触发更改并且不会发生任何事情(我理解为什么......我不想要/需要州选项如果发生这种情况)。因此,我最终选择了一个州和城市,没有国家(不好)。我想要完成的是当我的CountryId下拉列表设置为以下内容时:
<option value="">Select a Country</option>
然后应该发生以下情况:
$('#StateId').html('<option value="">Select a State</option>');
$('#CityId').html('<option value="">Select a City</option>');
我只是不知道如何设置有关CountryId的第一部分。我该怎么做呢?我和$('#CountryId').val
以及其他几个没有运气的人搞乱了。
此外,似乎如果采用这种方法,如果它们已经是默认值,它将基本上写入State和City的默认值(例如,当用户之前没有设置值时报名表)?那有关系吗?还有更好的方法吗?
非常感谢任何帮助。
答案 0 :(得分:0)
您应该绑定change
事件国家/地区,然后检查值,并使用.val()
更改state
和country
的下拉值。
$("#CountryId").on('click', function () {
if($(this).val() == ''){
$('#StateId').val('');
$('#CityId').val('');
}
});
$(document).ready(function() {
setTimeout(function() {
$('select').val('')
}, 2000)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option value="">Select a State</option>
<option value="Whatever" selected>Whatever</option>
</select>