2012-07-20 129 views
0

我在IE上遇到了非常奇怪的错误。我使用下面的代码发出ajax请求,从数据库获取数据,并使用该数据创建下拉选项<option>。事情是在IE浏览器的数据没有正确显示,它只显示数据的第一个字符,但在其他浏览器的数据显示正确。我也尝试打印出数据,数据是正确的。 所以我怀疑我的JQuery选择或追加是错误的,并尝试追加ajax调用与一些垃圾数据和数据显示正确,但然后再次我把该代码放入ajax内,并不再显示...我真的出的线索现在..你可以帮助我这个家伙吗?我曾与FF,Chrome和Safari浏览器测试,他们都运作良好...Jquery Ajax无法在IE上工作

$.ajax({ 

    cache: false, 
    type: "POST", 
    url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/", 
    data: { esid: estore_id } 

}).done(function(data) { 

    var obj = jQuery.parseJSON(data); 
    jQuery.each(obj, function (i, app) { 

     //alert(i+app['discount_type']); 
     var sel = $('select[name=discount_type'+id+']'); 
     sel.append('<option value="'+app['id']+'">'+app['discount_type']+'</option>'); 

    }); 

}); 
+0

你能发表一个你的json的例子吗?以及var sel = $('select [name = discount_type'+ id +']')中的'id'变量是什么?' – mabbas 2012-07-20 09:54:28

+0

umm id用于在表单字段中定位每个下拉列表。它实际上是作为顶级函数的参数传入的。这里是我的json [{“id”:19,“discount_type”:“20%”},{“id”:51,“discount_type”:“test”}] – zaw 2012-07-23 02:35:27

回答

0

使用JavaScript!

$.ajax({ 

cache: false, 
type: "POST", 
url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/", 
data: { esid: estore_id } 

}).done(function(data) { 
    var obj = jQuery.parseJSON(data); 

    /* clearing options with JS since jQuery cleare the select in the DOM but enter code herenot on screen. */ 
    $('select[name=discount_type'+id+']')[0].options.length = 0; 
    $('select[name=discount_type'+id+']').children().remove().end().append(''); 

    jQuery.each(obj, function (i, app) { 
     var sel = $('select[name=discount_type'+id+']'); 
     sel.append('<option value="'+app.id+'">'+app.discount_type+'</option>'); 
    }); 
}); 
2
$.ajax({ 

    cache: false, 
    type: "POST", 
    url: "<?php echo $this->baseUrl(); ?>/rewards/getdiscounttype/", 
    data: { esid: estore_id }, 
    datatype: "json", 
    succes: function(jsonData){ 
     $.each(jsonData,function(i,app){ 
      var sel = $('select[name=discount_type'+i+']'); 
      sel.append('<option value="'+app.id.+'">'+app.discount_type.+'</option>'); 
     }); 
    }, 
    error: function(e){ 

    } 

}) 

试试这个,我认为它能够更好地应用在代替治疗JSON像app.id对象['身份证“]。没有太多时间做一些测试,我会给你我收到的JSON,我可以测试。

+0

我刚刚尝试过,但仍然在IE 。 – zaw 2012-07-20 08:57:16