1

这是我的javascript:

  $('#Service').val("2");
  $("#Service").change(); // Sets new options in subservice.
  $('#Subservice').val("5");
  //EDIT:
  alert($('#Subservice').length); // Returns 1, when there are far more in it.

服务和子服务是下拉框。

在服务更改时,将填充新的子服务列表。

这是设置要编辑的记录的字段。它在我单击编辑按钮时执行。它设置服务下拉框,然后填充子服务下拉框,然后尝试为其设置正确的下拉选择。

但是,它没有正确设置子服务框。选项正确,.change()工作和服务设置也正确。但是没有设置子服务。其中有一个值为 5 的条目。

我唯一的理由是 .change 正在触发,但在完成之前继续设置 .val 。因此在设置时不存在任何选项。但是我也不明白为什么它会成为线程。所以我不确定发生了什么或如何解决它。

4

2 回答 2

1

你把你的代码放在准备好的函数中了吗?

$(function () {
  $('#Service').val("2");
  $("#Service").change(); // Sets new options in subservice.
  $('#Subservice').val("5");
});

这将等待整个 DOM 准备就绪,然后再执行函数中的代码,从而使 #service 可用。

于 2012-05-09T08:42:43.457 回答
0

将代码中的最后一行更改为

setTimeout(function(){ 
    $('#Subservice').val("5");
}, 10);
于 2012-05-09T08:43:34.707 回答