mootools 中的动态下拉菜单未在 IE7 中填充。在 IE8 下工作正常

发布于 2024-12-29 18:27:09 字数 785 浏览 0 评论 0 原文

我正在触发 ajax 调用来获取我在下拉列表中填充的 json 响应。

代码是:

var ajaxURL = "abc.ajax";
var fireAjax = new Request.JSON({
    url: ajaxURL,
    method:'GET',
    onSuccess:function(resultjson){

                if(resultjson.length!=0){
                    var elSelect = new Element('option',{'html':'First component','value':'All'}).injectInside($('vehicletype'));
                    resultjson.each(function(vName){

                    var elOptions = new Element('option',{'value':vName,'selected':'selected' }).setHTML(vName).injectInside($('vehicletype'));


                    });

                    sschecker[0].registerAnotherElement($('vehicletype'));


                }

            }


}).send();  

这在 IE8、firefox 等中运行良好。

I am firing an ajax call to get json response which I am populating in the dropdown.

Code is:

var ajaxURL = "abc.ajax";
var fireAjax = new Request.JSON({
    url: ajaxURL,
    method:'GET',
    onSuccess:function(resultjson){

                if(resultjson.length!=0){
                    var elSelect = new Element('option',{'html':'First component','value':'All'}).injectInside($('vehicletype'));
                    resultjson.each(function(vName){

                    var elOptions = new Element('option',{'value':vName,'selected':'selected' }).setHTML(vName).injectInside($('vehicletype'));


                    });

                    sschecker[0].registerAnotherElement($('vehicletype'));


                }

            }


}).send();  

This is working fine in IE8, firefox, etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

强辩 2025-01-05 18:27:09

没有理由它不能在 IE7(甚至 IE6)上运行。

我已经测试了您的代码(并更改了一些内容):

var ajaxURL = "/echo/json/";
var fireAjax = new Request.JSON({
    url: ajaxURL,
    method:'POST',
    data: {
        json: JSON.encode({
            opt1: 'option 1',
            opt2: 'option 2'
        })
    },
    onSuccess:function(resultjson){
                if(resultjson.length!=0){
                    var elSelect = new Element('option',{'html':'First component', 'value':'All' }).injectInside($('vehicletype'));
                   Object.each(resultjson,function(value,key){
                       new Element('option',{'value':key,'html':value}).inject($('vehicletype'));
                       //sschecker[0].registerAnotherElement($('vehicletype'));
                   });

                }
            }
}).send();  

我已将方法更改为 POST 并添加了数据..只是为了能够在 jsfiddle http://jsfiddle.net/F7G9Y/2/.. 在我看来,它在 IE7 上工作(没有 IE6 sry)

(并且我的经验),这通常是由于 JSON 格式错误,大多数时候是因为额外的逗号。所以像这样的 json 字符串:

{ 
  'foo':'Foo',
  'bar':'Bar', //<-extra coma here
}

在 Firefox、Chrome 中可以,但在 IE 上不行

希望这会有所帮助

There is no reason why it shouldn't work on IE7 (even IE6).

I've tested it (and changed a few things) of your code:

var ajaxURL = "/echo/json/";
var fireAjax = new Request.JSON({
    url: ajaxURL,
    method:'POST',
    data: {
        json: JSON.encode({
            opt1: 'option 1',
            opt2: 'option 2'
        })
    },
    onSuccess:function(resultjson){
                if(resultjson.length!=0){
                    var elSelect = new Element('option',{'html':'First component', 'value':'All' }).injectInside($('vehicletype'));
                   Object.each(resultjson,function(value,key){
                       new Element('option',{'value':key,'html':value}).inject($('vehicletype'));
                       //sschecker[0].registerAnotherElement($('vehicletype'));
                   });

                }
            }
}).send();  

I've changed the method to POST and added the data.. just to be able to test it in jsfiddle http://jsfiddle.net/F7G9Y/2/.. its working on IE7 (don't have IE6 sry)

in my opinion (and my experience), it's usually due to a malformed JSON, most of the time because of an extra coma. So json strings like this :

{ 
  'foo':'Foo',
  'bar':'Bar', //<-extra coma here
}

will be ok in Firefox, Chrome but not on IE

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文