已更新:DOM正在创建#dockhouse-reservation-vessel
的第二个选择实例。它覆盖了第一个具有正确值的“真实”
触发事件,检索和替换数据。 #dockhouse-reservation-vessel
的值显示在alert()
中,但不显示在$_POST
中。如果我注释掉jQuery的第二个块,那么有问题的select
的值会被正确记住。
$('form').delegate('#dockhouse-reservation-owner','change', function(){
$.ajax({
url: '/dockhouse/ajax/vessels/' + $(this).val() + '/',
success: function(data){
$('#dockhouse-reservation-vessel').empty();
$('#dockhouse-reservation-vessel').append(data);
}
});
});
data
代表option
元素:
<!DOCTYPE html>
<option value="">Choose a vessel</option>
<option value="1744">Stinkpot</option>
<option value="1726">Poopy Snoop</option>
<option value="1704">Catchup</option>
下面的data
代表一个表格。
$('form').delegate('#dockhouse-reservation-vessel','change',function(){
$.ajax({
url: '/dockhouse/ajax/locations-by-reservation-criteria/' + $(this).val() + '/',
success: function(data){
$('#assign-location').empty();
$('#assign-location').append(data);
}
});
});
有什么想法吗?
答案 0 :(得分:1)
当您删除并重新插入整个选择框时,状态将被删除。 您可以将旧值保存在临时变量中并将其应用于回调:
$('form').delegate('#dockhouse-reservation-vessel','change',function(){
// save the value
var oldValue = $(this).val();
$.ajax({
url: '/dockhouse/ajax/locations-by-reservation-criteria/' + oldValue + '/',
success: function(data){
$('#assign-location').empty();
$('#assign-location').append(data);
// select the old value
$('#dockhouse-reservation-vessel').val(oldValue);
}
});
});
答案 1 :(得分:0)