0

編集: charlietfl のおかげで、IE < 9 はすべての XML タグを大文字に変換することに気付きました。ただし、この知識があっても、XML を IE8 で適切に表示するための解決策を見つけることができませんでした。

これはすべての優れたブラウザー、IE10 および 9 で動作しますが、IE8 では解析/表示される xml データはありません。

$("#Form").validate({
    submitHandler: function(form) {
        $('#prcs3').show();
        var dataString = $(form).serialize();
        $.ajax({
            type: $(form).attr('method'),
            url: form.action,
            data: dataString,
            clearForm: true,
            success: function(data) {
                $('#resultGenerate > li').remove();
                var answer = $(data).find("td:eq(3)").text();
                var message = $(data).find("td:eq(5)").html();
                var $xml = $( message );
                if (answer==="True") {
                    $('#prcs3').hide();
                    $xml.find('license').each(function(){
                        var CustomerID = $(this).find('CustomerID').text();
                        var License  = $(this).find('License').text();
                        var Log  = $(this).find('Log').text();
                        var ExpirationDate  = $(this).find('ExpirationDate').text();
                        $("#resultGenerate").show().removeClass('error').append($('<li><span class="ID">' + CustomerID + '</span><span class="L">' + License + '</span><span class="Log">' + Log + '</span><span class="Exp">' + ExpirationDate + '</span></li>'));
                    });
                } else {
                    $('#prcs3').hide();
                    $('#resultGenerate').show().html('<a class="close">X</a><ul><li>' + message + '</li></ul>');
                }
            }
        });
        return false;
    }
});

返された/解析された xml が IE8 に表示されない原因は何ですか? いつもアドバイスありがとうございます。

4

4 に答える 4

3

返された応答のサンプルを見ずに、xml が返される html テーブル内のテキストであることを収集しています。

おそらく使用する必要があります$.parseXML()

試す:

var $xml = $( $.parseXML( message) );

API リファレンス: http://api.jquery.com/jQuery.parseXML/

編集:さらに、IE バージョン 9 未満では、タグがすべて大文字に変換されます。チェックすることでこれを回避できますlength

if( $xml.find('LICENCES').length ){
    /* use all uppercase tagnames*/
}else{
    /* use all lowercase tagnames*/
}
于 2012-12-09T22:42:22.220 に答える
0

私はここでワイルドな推測をします:

    success: function(data) {
        $('#resultGenerate > li').remove();
        var answer = $(data).find("td:eq(3)").text();
        var message = $(data).find("td:eq(5)").html();
        var $xml = $( message );

parseXML最初にデータを取得する必要があると思います。そう、

    success: function(data) {
        $('#resultGenerate > li').remove();
        var $data = $( $.parseXML(data) );
        var answer = $data.find("td:eq(3)").text();
        var message = $data.find("td:eq(5)").html();
        var $xml = $( message );
于 2014-03-04T00:58:13.717 に答える
0

var $xml = $( message );JSlint で実行したところ、jQuery に関連しない唯一のエラーだったので、問題は にあると思います。var $xml = $(message);それを修正しますか?

編集: jQuery Web サイト (http://docs.jquery.com/Plugins/Validation) には、問題が発生する可能性があることを示す例があるため、 $beforeを削除してみてください。$(form).serialize();

于 2012-12-09T22:39:07.287 に答える