0

出于某种原因,我的表单可以在除 Internet Explorer 之外的所有浏览器中使用。

这是 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/plain支持Content-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 回答