jQuery .val(#) 不会更改 AJAX 调用后的选择 - 如果 debugging/paused 有效
jQuery .val(#) does not change selection following AJAX call - works if debugging/paused
我有一个有趣的问题 - 当我执行 AJAX 调用时,根据页面加载或输入的过滤器使用新条目刷新此约会列表下拉列表 - .val() 方法将 不设置
这就是 AJAX 方法的成功之处 - 基本上它用新条目设置备份 AppointmentList 下拉列表:
$.map(data, function (item) {
$('#AppointmentList').get(0).options[$('#AppointmentList').get(0).options.length] = new Option(item.AppointmentTime, item.ID);
});
这就是调用基本上只包含重新填充#AppointmentList 下拉列表的 $.ajax() 方法的函数。当我取回新的一组值时 - 我仍然需要它来预填充旧的 "appointment"。
var tempVal = $('#AppointmentList').val();
DropDownList();
$('#AppointmentList').val(tempVal);
这什么都不做,重新创建的列表中的第一个元素被选中。
但是 如果我在 :
上设置断点
$('#AppointmentList').val(tempVal);
然后似乎已经过了足够的时间来更改此下拉列表 - 如果存在断点并且我继续 - 如果我正在调试 Javascript.
关于如何重构它有什么想法吗?我一直在想,也许当我们实际执行 $.map() 函数时,我们可以在那里设置我们的旧值 - 但这段代码似乎有效......我是否应该在 Ajax 之间有更多时间完成,我需要再次设置 .val()。
问一个愚蠢的问题 - 找出一个愚蠢的答案 - 我猜。异步。呸
将这两行移动到 $.ajax() 调用上方的这一行:
var tempVal = $('#AppointmentList').val();
然后,将设置值的行放在内成功,但是在之后$.map():
$('#AppointmentList').val(tempVal);
我有一个有趣的问题 - 当我执行 AJAX 调用时,根据页面加载或输入的过滤器使用新条目刷新此约会列表下拉列表 - .val() 方法将 不设置
这就是 AJAX 方法的成功之处 - 基本上它用新条目设置备份 AppointmentList 下拉列表:
$.map(data, function (item) {
$('#AppointmentList').get(0).options[$('#AppointmentList').get(0).options.length] = new Option(item.AppointmentTime, item.ID);
});
这就是调用基本上只包含重新填充#AppointmentList 下拉列表的 $.ajax() 方法的函数。当我取回新的一组值时 - 我仍然需要它来预填充旧的 "appointment"。
var tempVal = $('#AppointmentList').val();
DropDownList();
$('#AppointmentList').val(tempVal);
这什么都不做,重新创建的列表中的第一个元素被选中。
但是 如果我在 :
上设置断点$('#AppointmentList').val(tempVal);
然后似乎已经过了足够的时间来更改此下拉列表 - 如果存在断点并且我继续 - 如果我正在调试 Javascript.
关于如何重构它有什么想法吗?我一直在想,也许当我们实际执行 $.map() 函数时,我们可以在那里设置我们的旧值 - 但这段代码似乎有效......我是否应该在 Ajax 之间有更多时间完成,我需要再次设置 .val()。
问一个愚蠢的问题 - 找出一个愚蠢的答案 - 我猜。异步。呸
将这两行移动到 $.ajax() 调用上方的这一行:
var tempVal = $('#AppointmentList').val();
然后,将设置值的行放在内成功,但是在之后$.map():
$('#AppointmentList').val(tempVal);