在.ajax()调用之后设置选定的值仅在警报之后有效

时间:2013-04-19 16:13:47

标签: javascript jquery ajax

我正在尝试设置在填充下拉列表时从Java会话中获取的选定值。在这种情况下,我想选择“selectedCtgry”,它也是被调用的响应json对象中的一个键。

我知道有竞争条件。但我无法弄清楚如何克服这个问题。我还使用了附加到.ajax()函数的.done()。这样,成功处理程序和延迟程序都不起作用。

有什么方法可以解决这个问题吗?

$(document).ready(function() {
    // alert("selectedCtgry: "+selectedCtgry);
   var selectedCtgry=document.getElementById("title").value;
   $("#title").one("click", function() {  
    if(selectedCtgry!=null){
                  var d1 = null;
                        $.ajax({
                             url : 'UpdateHelperServlet',
                             data: {title : selectedCtgry}, 
                             type: 'get',                   
                             dataType:'json',
                             async: false,                   
                             success : function(data) {  
                                      var $options = $();
                                      $.each(data,function(key,value) {
              $options = $options.add($('<option/>').attr('value', key).text(value));
                             });
                             $("#title").html($options);
                             alert("typeof key");
                             $("#title").val(selectedCtgry);          

                              });
                        } 
               });
    }); 

1 个答案:

答案 0 :(得分:2)

 $.each(data,function(key,value) {

     if(key == selectedValue)
        $('#title').append('<option selected value="'+key+'">'+value'+</option>');
     else
        $('#title').append('<option value="'+key+'">'+value'+</option>');
});
相关问题