2013-02-25 20 views
0

以下代碼在FF和Chrome中很有效:表單通過Ajax發佈,並出現模式窗口。在IE9中,模態窗口出現,但表格未發佈。Ajax表單不會在Internet Explorer中發佈

使用Javascript:

$(document).ready(function() { 
$(document).ajaxStart(function(){ 
    $('#thanks').modal(); 
}); 

$('.ajaxform').submit(function() { 
    $.ajax({ 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     dataType: 'html', 
     data: $(this).serialize(), 
     success: function (data) {}, 
     error: function() { } 
    }); 
    return false; 
}); 

});

HTML:

<form method="post" action="https://www.example.com/post.php" class="ajaxform"> 
<label>First name*</label> 
        <input type="text" name="fname" required> 

        <label>Last name*</label> 
        <input type="text" name="lname" required> 

        <label>Email address*</label> 
        <input type="email" name="email" required> 

        <label>Phone number*</label> 
        <input type="tel" name="phone" required> 
<input class="btn btn-primary" type="submit" value="Submit Request" role="button" href="#thanks"> 
+0

你能詳細說明這些「輸入等」嗎? – raina77ow 2013-02-25 15:47:43

+0

控制檯說什麼? – 2013-02-25 15:50:04

+0

編輯以包含一些示例輸入。控制檯在IE中不顯示任何類型的錯誤 – Jon 2013-02-25 16:11:52

回答

1

請問您是否確實在IE中調用提交事件處理程序?原因是我要問的是,jQuery的.submit()文檔指出:

「中的JavaScript提交事件不會在Internet Explorer中沒有泡沫然而,依賴於事件代表團腳本提交事件會。從jQuery 1.4開始,在瀏覽器中一致工作,jQuery 1.4已經規範了事件的行爲。「

所以根據您所使用jQuery版本,這可能是一個問題...... 此外,使用招或控制檯檢查Ajax調用是否真正退出瀏覽器可能會給出提示。

乾杯,亞歷克斯

+0

對於遲到的回覆很抱歉 - 我認爲這是問題所在。謝謝! – Jon 2013-04-05 13:39:08

0

我沒有看到你的AJAX調用使得這成爲一個實際的帖子裏。如果它是一個get,你可能不得不在IE中禁用緩存。 jQuery ajax調用的設置爲:cache: false

$('.ajaxform').submit(function() { 
    $.ajax({ 
     cache: false, 
     url: $(this).attr('action'), 
     type: $(this).attr('method'), 
     dataType: 'html', 
     data: $(this).serialize(), 
     success: function (data) {}, 
     error: function() { } 
    }); 
    return false; 
}); 
相關問題