0

我创建了一个适用于 chrome 和 firefox 的 ajax 函数,但不是 ie 8 有人能发现这个问题吗?

html部分:

<select id='choices'>
<option id="no" value="no" onClick="check()">No</option>
<option value="yes" onClick="check()">Yes</option>
</select>

Javascript部分:

function check(){
    var a = document.getElementById("choices").value;
    var type = "label";
    ajaxFunction(a,type);
    if(a == "yes"){
        document.getElementById("results").style.display="block";
    }
    else{
        document.getElementById("results").style.display="none";
    }
}

AJAX 部分:

function ajaxFunction(result,dif){
    var ajaxRequest;  // The variable that makes Ajax possible!

    try{
        // Opera 8.0+, Firefox, Safari
        ajaxRequest = new XMLHttpRequest();
    } catch (e){
        // Internet Explorer Browsers
        try{
            ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                // Something went wrong
                alert("Your browser broke!");
                return false;
            }
        }
    }
    // Create a function that will receive data sent from the server
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4){
            if(dif == "label"){
                var ajaxDisplay = document.getElementById('results');
            }
            else{
                var ajaxDisplay = document.getElementById('results1');
            }
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }
    }
    if(dif == "label"){
        var hiddenvalue = document.getElementById('hiddenvalue').value;
        var queryString = "?type=" + result + "&label=" + hiddenvalue + "&dif=" + dif;
    }
    else{
        var queryString = "?type=" + result + "&dif=" + dif;
    }

    ajaxRequest.open("GET", "scripts/script.php" + queryString, true);
    ajaxRequest.send(null); 
}

PHP部分:

var_dump($_GET);

我不确定这是否只是一个兼容性问题,因为我在另一个工作正常的项目中使用了与此非常相似的代码,但是我还有一些其他脚本正在加载,例如 jquery 1.2.3 和 google分析(使用高级链接跟踪器,我必须摆脱它,因为它抛出错误)。我已经检查了调试器并单击了错误时全部中断,我可以单击 onclick,但调试器中实际上没有显示任何错误。除了 jquery 之外,有没有人有任何建议(无法理解)

4

1 回答 1

0

IE 不支持 onclick 选项。

onchange 需要在选择上。

<select id='choices' onchange="check()">
    <option id="no" value="no">No</option>
    <option value="yes">Yes</option>
</select>
于 2013-06-05T15:52:05.423 回答