0

Chrome と Firefox で動作する ajax 関数を作成しましたが、誰も問題を見つけることができません。

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 に答える