2012-12-04 62 views
0

由於某種原因,我的表單在除Internet Explorer之外的每個瀏覽器中都有效。表單在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); 
      } 
     }); 
    }); 
}); 

什麼想法?

+1

什麼位不工作? IE在調試控制檯(f12)中是否包含任何錯誤消息? – DaveHogan

+0

該按鈕不會提交數據。它什麼都不做。 – jukebox535

+1

試試Firefox的firebug javascript控制檯,或者Chrome開發人員工具(或類似的東西)中的控制檯,以查看任何JS錯誤消息。這可能是 - 某處 - JS錯誤,這可能是因爲缺少撇號到AJAX的任何內容。 – Sean

回答

0

您正在嘗試執行跨域Ajax請求。 IE8和IE9支持跨域請求,但它們使用自定義API XDomainRequest,它具有several limitations

即,鏈接文檔中的#4:「只有text/plain支持請求的Content-Type標頭」。您要求提供JSON,但您無法使用XDomainRequest發送Content-Type: text/json

嘗試刪除dataType:'json'行並將data = $.parseJSON(data)添加到您的success處理程序的第一行。

+0

我嘗試這樣做,現在我的代碼看起來是這樣的:「//如果成功從服務器發送數據= $ .parseJSON(數據) \t \t \t \t \t如果(typeof運算數據[」成功]!== '未定義'){ \t \t \t \t \t \t // CLEAR FORM \t \t \t \t \t \t $( 'clubregister輸入[類型= 「文本」],.clubregister textarea的 ')。VAL('') ;」 – jukebox535

+0

使用這些編輯時表單崩潰了。 – jukebox535

+0

@ jukebox535不,我的意思是在你的'$ .ajax''成功函數的頂部。在'//console.log(dump(data));'之後加上它,並且在'success:function(data){' – apsillers

0

刪除行:

console.log(consolemessage);

IE無法處理此,並會導致你的問題。

+0

這不起作用。 – jukebox535

相關問題