JQuery IE选择问题

时间:2012-01-27 05:03:17

标签: javascript jquery internet-explorer-7

与IE7有些麻烦。 IE8,Chrome,Firefox都运行良好,但IE7不会执行此代码。

这是HTML Select(Snippet)

<form name="frmCat" action="index3.html" method="get">
            <select id="mySelect" onChange="onchange1((this).options[this.selectedIndex].value);">
                <option>Select a Category</option>
            </select>

这里是在其他浏览器中运行得很好的JavaScript(AJAX代码段):

function onchange1(catname){
    //alert(catname);
            $.ajax({
            type: "GET",
            url: "xml/categories.xml",
            dataType: "xml",
            success: function(xml) {
                var div = $('#epcf-wrap');
                var findval = "Cat"
                $(xml).find('Cat').each(function(){
                    var cval = $(this).attr('name');
                                            if(catname === cval){
                                            // I bet there is an easier way to do this
                                            var xmlArr = [];
                                            var xml_EPCF_1_1        = $(this).find('EPCF_1_1').text();

我已经读过IE7和AJAX存在某种问题,我已经看到一些提示,应该进行某种形式的MSIE检查,但我是JavaScript的新手和JQuery没什么关系,我发现我在这里所做的事情非常清楚。

思想?

2 个答案:

答案 0 :(得分:1)

您可以不使用内联JavaScript。使用jQuery方式。

$('#mySelect').change(function(){
    //You can get the select value by the way below.
    var catname = $(this).val();
    $.ajax({
        type: "GET",
        url: "xml/categories.xml",
        dataType: "xml",
        success: function(xml) {
            var div = $('#epcf-wrap');
            var findval = "Cat"
            $(xml).find('Cat').each(function(){
                var cval = $(this).attr('name');
                if(catname === cval){
                    //....
                }
            }
        }
    });
});

答案 1 :(得分:0)

在IE7中使用ajax没有问题。

请为ajax调用添加错误处理程序,并查看返回的错误消息。

还要确保您的方法获得正确的参数。

最后,

 $("#myselect").change(handler(event)) 

听起来有点清洁。 这是在jquery doc中: http://api.jquery.com/change