Jquery无法正常运行(不等待?)

时间:2012-05-09 08:40:33

标签: javascript jquery

这是我的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。所以在设置时没有选项。但是,我不明白为什么它也会穿线。所以我不确定发生了什么或如何解决它。

2 个答案:

答案 0 :(得分:1)

您是否已将代码置于就绪功能中?

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

在执行函数中的代码之前,这将等待整个DOM准备就绪,使#service可用。

答案 1 :(得分:0)

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

setTimeout(function(){ 
    $('#Subservice').val("5");
}, 10);