2015-09-06 57 views
0

我是一个人口下降与jQuery阿贾克斯和之后,我想改变选定的项目。如何更改填充jQuery的下拉选中的项目?

我用于更改所选项目的代码工作正常时,我不填充下拉没有jQuery,但它不工作时,我填充它与Ajax。

如何解决?

<select id="agent" name="AgentId"></select> 
$(document).ready(function() { 
$("#agent").empty(); 
$.getJSON("/cpanel/rate/GetAgentsByPortId", { portId: $(this).attr("pol") }, function (data) { 
    var i = 0; 
    for (var i = 0; i < data.length; i++) { 
     $("#agent").append("<option value='" + data[i].AgentId + "'>" + data[i].Name + "</option>"); 
    } 
}); 
$("#agent>option:eq(1)").attr('selected', true); 
}); 

回答

0

AJAX是一个短期的异步JavaScript和XML

这意味着,请求是异步的,它的响应将来会发生,响应的处理也是如此。如果将来发生处理(追加选项),则不能在当前时间使用结果(选择选项)。

尝试这样的:

<select id="agent" name="AgentId"></select> 
$(document).ready(function() { 
$("#agent").empty(); 
$.getJSON("/cpanel/rate/GetAgentsByPortId", { portId: $(this).attr("pol") }, function (data) { 
     var i = 0; 
     for (var i = 0; i < data.length; i++) { 
      $("#agent").append("<option value='" + data[i].AgentId + "'>" + data[i].Name + "</option>"); 
     } 
     $("#agent>option:eq(1)").attr('selected', true); 
    }); 
}); 
+0

谢谢,但没有工作对我来说:( –

+0

在哪些方面做到了不行再说,即使它没有工作,我希望你明白为什么你的代码*? **不能***的工作,以及如何走向一个解决方案。 – Amit