每次您发布表单数据时,您的客户端状态 (jquery) 都会重置。为了在post之后设置它,您需要再次执行相同的脚本,而不是等待更改。
var cities = {
"Úc": [{
display: "Canberra",
value: "Canberra"
}, {
display: "Sydney",
value: "Sydney"
}, {
display: "Melbourne",
value: "Melbourne"
}, {
display: "Perth",
value: "Perth"
}, {
display: "Gold Coast ",
value: "Gold-Coast"
}],
"Pháp": [{
display: "Paris",
value: "Paris"
}, {
display: "Avignon",
value: "Avignon"
}, {
display: "Strasbourg",
value: "Strasbourg"
}, {
display: "Nice",
value: "Nice"
}],
"Nhật Bản": [{
display: "Tokyo",
value: "Tokyo"
}, {
display: "Osaka",
value: "Osaka"
}]
};
(function($) {
$('[name="departure_country[]"]').change(function(){
var $this = this;
SetCity($this);
});
function SetCity(obj)
{
var country = $(obj).val();
var clist = cities[country];
var dep = $('[name="departure[]"]');
dep.empty().append('<option>--select--</option>');
$(clist).each(
function(i, v) {
$('<option>').text(v.display).val(v.value).appendTo(dep);
}
);
}
SetCity();
})(jQuery);
工作示例:https://jsfiddle.net/DinoMyte/pc6a8m06/4/