Javascript ajaxedselectform元素默认为第一个选项,即使已更改
更新:DOM正在创建dockhouse reservation vessel的第二个select实例。它覆盖了第一个,它是具有正确值的真实值 触发事件,检索和替换数据。dockhouse预订船只的值显示在警报中,但不显示在$\ POST中。如果我注释掉jQuery的第二个块,就会正确地记住有问题的select的值Javascript ajaxedselectform元素默认为第一个选项,即使已更改,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,更新:DOM正在创建dockhouse reservation vessel的第二个select实例。它覆盖了第一个,它是具有正确值的真实值 触发事件,检索和替换数据。dockhouse预订船只的值显示在警报中,但不显示在$\ POST中。如果我注释掉jQuery的第二个块,就会正确地记住有问题的select的值 $('form').delegate('#dockhouse-reservation-owner','change', function(){ $.ajax({
$('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);
}
});
});
数据表示选项元素:
<!DOCTYPE html>
<option value="">Choose a vessel</option>
<option value="1744">Stinkpot</option>
<option value="1726">Poopy Snoop</option>
<option value="1704">Catchup</option>
有什么想法吗?当您删除并重新插入整个选择框时,状态将被删除。 您可以将旧值保存在临时变量中,并在回调中应用它:
$('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);
}
});
});
哇,愚蠢的错误。有一个与表ajax响应同名的select字段被拉入。羞愧地走开…来自服务器的数据看起来像什么?你要用另一个select替换select吗?@Czarchic,我也用新的jQuery更新了我的问题。同样的问题。我现在将选项元素添加到select,查看DOM,它正在创建第二个select实例。它覆盖了第一个字段,它是具有正确值的真实字段。jQuery代码的第二块似乎是基于原始DOM创建字段的新实例。。。?我不明白是什么引起的。
$('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);
}
});
});