2014-02-18 29 views
0

我们使用jquery.each来计算组合框的内容。在Firefox和Chrome上,第一次点击确实计算并显示列表。但是,在IE上,第一次点击计算,但没有显示出来。您可以通过向下滚动查看值。第二次点击很好,你可以看到一切。Combobox在第一次点击时不显示列表IE

下面的代码是从按钮的焦点调用的。

jQuery.ajax({ 
    type: "POST", 
    dataType : 'json', 
    async: false, 
    data:{ 
     'longueurA' : longueurA, 
     'longueurB' : longueurB, 
     'longueur1' : longueur1LI, 
     'longueur2' : longueur2LI, 
     'name'  : 'ILOT' 
    }, 
    success: function(results){ 
     if(results != ''){ 
      var options=''; 
      options+='<option value="'+largeurminIlot+'x'+profondeurminIlot+'">Aucune sélection...</option>'; 
      jQuery.each(results, function(){ 
       options+='<option value="'+this.largeur+'x'+this.profondeur+'">'+this.largeur+'x'+this.profondeur+'</option>'; 
      }); 
      jQuery("#"+name).html(options) 
     } 
     else{ 
      var options=''; 
      options+='<option value="">Aucun résultat</option>'; 
      jQuery("#"+name).html(options) 
     } 
    }, 
    error: function(){ 
     var options=''; 
     options+='<option value="">Aucun résultat</option>'; 
     jQuery("#"+name).html(options) 
    } 
}); 
+0

你将不得不张贴一些代码,我害怕,不知道你想达到什么。 – Stumblor

+0

当然可以。对不起,我是新来的stackoverflow。干得好。 –

+0

这很好。当你说第一次点击时,你的意思是最初的选项值?即:options + =''; – Stumblor

回答

0

正如Bérenger所说,填充下拉列表的代码被称为焦点。更好的选择是在文档准备好时填充下拉列表。

$('document').ready(function() { 
    // code to retrieve values 
    jQuery.ajax({ 
     type: "POST", 
     dataType : 'json', 
     ... 
    }); 
}); 

另外,async值应设置为true,以确保代码的执行而下拉被填充不停止。为确保用户不会被空的下拉列表所困惑,可以隐藏它,直到填充值。

$('document').ready(function() { 

    jQuery("#"+name).hide(); 

    jQuery.ajax({ 
     type: "POST", 
     dataType : 'json', 
     ... 
     success: function(data) { 
      // build options string 
      // ... 
      $("#"+name).html(options).fadeIn(); 
     } 
    }); 
}); 
相关问题