3
我试图建立在我的网站Country -> State -> City
特征,其中state
和city
选择框是disabled
,一旦用户选择了一个Country
它表明国家的各自状态等。我现在面临选择二选项不会得到更新正确
问题是,一旦某一特定国家的状态显示在状态输入后,如果我改变这个国家,然后是新的国家的状态也显示,但与以前的国家的国家一起。
function states_data(loc_data, selectedCountry) {
var _states_array = [];
var states = loc_data[selectedCountry];
for (i = 0; i < states.length; i++) {
_states_array.push({
id: states[i],
text: states[i]
})
}
return _states_array
}
function _cities(state) {
var val = Math.floor((Math.random() * 100) + 1);
return [{
id: val + state,
text: val + state
}];
}
var loc_data = {
'USA': ['USA State 1', 'USA State 2', 'USA State 3'],
'Australia': ['AUS State 1', 'AUS State 2']
}
$('#loc_state').select2({
placeholder: "Select a state",
disabled: true
}).on('change', function() {
var selectedState = $(this).val();
$('#loc_city').select2({
disabled: false,
placeholder: "Select a city",
allowClear: true,
data: _cities(selectedState) //it should delete previous values and update new ones.
});
}).trigger('change');
$('#loc_city').select2({
placeholder: "Select a city",
disabled: true
});
var countries_data = [];
for (var key in loc_data) {
countries_data.push({
id: key,
text: key
});
}
$('#loc_country').select2({
placeholder: "Select a country",
allowClear: true,
data: countries_data
}).on('change', function() {
var selectedCountry = $(this).val();
$('#loc_state').select2({
disabled: false,
placeholder: "Select a state",
allowClear: true,
data: states_data(loc_data, selectedCountry) //it should delete previous values and update new ones.
});
}).trigger('change');
如果选择USA
那么美国的状态显示,但如果你将其更改为Australia
然后Australia's
状态显示,但USA's
也有,他们根本没有被删除。
可能是什么问题?
如果用户取消选择Country
字段,如何从State
和City
中删除所有选项?
作品般的魅力......我用'$(“loc_state”)空();'在单独的行较早,但不能想,如果可能的结合中事件也是如此。谢谢! –