0

何らかの理由で、私のフォームはInternetExplorer以外のすべてのブラウザで機能しています。

HTMLは次のとおり です。これは私以外の誰かによって設計されました。

    <label for="name">Name:</label><br />
    <input name="name" type="text" /><br />
    <label for="address">Address:</label><br />
    <input name="address" type="text" /><br />
    <label for="phone">Phone:</label><br />
    <input name="phone" type="text" /><br />
    <label for="email">Email:</label><br />
    <input name="email" type="text" /><br />
    <input class="button" name="submit" style="margin-top:10px;" type="button" value="Join Club" /></div>

これがJavaScriptです:これは私以外の誰かによって設計されました。

    <script type="text/javascript">
    ///////////////////////////////////////////////ARRAY DUMP FUNCTION
    function dump(a,b){var c="";if(!b)b=0;var d="";for(var e=0;e<b+1;e++)d+="            ";if(typeof a=="object"){for(var f in a){var g=a[f];if(typeof g=="object"){c+=d+"'"+f+"' ...\n";c+=dump(g,b+1)}else{c+=d+"'"+f+"' => \""+g+'"\n'}}}else{c="===>"+a+"<===("+typeof a+")"}return c}
  /////////////////////////////////////////////
$(document).ready( function() {
    $('.clubregister  input[name="submit"]').click( function(event) {
        event.preventDefault();
                    /*alert('This section is under construction, please contact us to get set up!\n Sorry for the inconvenience');return false;*/
        //CREATE ARRAY FROM FORM DATA SERIALIZED
        var $formData = $('.clubregister input[type="text"], .clubregister textarea').serializeArray();
        //PUSH ACTION TO ARRAY
        $formData.push({'name':'action','value':'registerForClub'});
        //SEND DATA TO HANDLER
        $.ajax({
            url:'http://torkliftcentralrv.com/club_register_handle.php',
            dataType:'json',
            async:false,
            data:$formData,
            success: function(data) {
                //console.log(dump(data));
                //CREATE MESSAGE
                var message = '';
                var consolemessage = '';
                //IF ERRORS
                if(typeof data['error'] !== 'undefined') {
                    //APPEND ERRORS TO MESSAGE
                    $.each( data['error'], function( index,data) {
                        message += (data + "\n");
                    });
                }
                //IF MESSAGES
                if(typeof data['message'] !== 'undefined') {
                    //APPEND MESSAGES TO MESSAGE
                    $.each( data['message'], function( index,data) {
                        message += (data + "\n");
                    });
                }

                //IF CONSOLE MESSAGES
                if(typeof data['console'] !== 'undefined') {
                    //APPEND CONSOLE MESSAGES TO MESSAGE
                    $.each( data['console'], function( index,data) {
                        consolemessage += (data + "\n");
                    });
                }
                //IF SUCCESS SENT FROM SERVER
                if(typeof data['success'] !== 'undefined') {
                    //CLEAR FORM
                    $('.clubregister input[type="text"], .clubregister textarea').val('');
                }
                alert(message);
                console.log(consolemessage);
            }
        });
    });
});

何か案は?

4

2 に答える 2

0

クロスドメインAjaxリクエストを実行しようとしています。IE8とIE9はクロスドメインリクエストをサポートしていますが、カスタムAPIを使用しています。XDomainRequestこれにはいくつかの制限があります。

つまり、リンクされたドキュメントの#4:「リクエストのヘッダーでのみtext/plainContent-Typeサポートされています」。JSONを要求していますが、をContent-Type: text/json使用して送信することはできませんXDomainRequest

行を削除して、ハンドラーの最初の行にdataType:'json'追加してみてください。data = $.parseJSON(data)success

于 2012-12-04T17:16:46.533 に答える
0

次の行を削除します。

console.log(consolemessage);

IEはこれを処理できず、問題が発生します。

于 2012-12-04T17:17:16.717 に答える