1

これはすべてのブラウザーで機能します。「IE 9 では投稿が機能しない」という同様の現象を見たことがあります。私はかなり基本的なことをしているので、これは少し違うと思います。

私のmail.phpページにデータを送信しないIE 9を除いて、すべてのブラウザですべて正常に動作しています。

助けていただければ幸いです。

コードを送信:

$(function() {  
  $(".submit").click(function() {  
    var name = $("input#name").val();
    var email = $("input#email").val();
    var topic = $("select#topic").val();
    var message = $("textarea#message").val();
    var dataString = 'name='+ name + '&email=' + email + '&topic=' + topic + '&message=' + message;
    $.ajax({  
        type: "POST",  
        url: "http://***.***/***/mail.php",  
        data: dataString,  
        success: function() {
            $('.holder').hide();
            $('#callback').show().append("Your feedback is appreciated, thank you!");
        },
        error:function(){
            alert(dataString);
            $('.holder').hide();
            $('#callback').show().append("There was an error processing your     request, we're very sorry please try again later.");
        }
});  
return false; 


  });  
}); 

HTML は次のとおりです (データを非表示にするために*を使用しました)。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<link rel="stylesheet" href="contactable.css" type="text/css" />
<script src="jquery.js"></script>
</head>

<body>
<div id="contactable">
<div id="contactable_inner"></div>
<div id="carFeedbackForm">
<div id="close"><u>Close</u></div>
<form id="contactForm" action="">
<div id="loading"></div>
<div id="callback"></div>
<div class="holder">

<p><label for="name">Name<span class="red"> * </span></label><br />
<input id="name" class="contact" name="name"/></p>

<p><label for="email">Email <span class="red"> * </span></label><br />
<input id="email" class="contact" name="email" /></p>

<p><label for="topic">Topic&nbsp</label><select id="topic" class="contact" name="topic">
<option>I Like</option>
<option>I Dislike</option>
<option>Cannot login</option>
<option>***(R)</option>
<option>Broken Link</option>
<option>Other</option></select></p><br />

<p><label for="message">Message <span class="red"> * </span></label><br />
<textarea id="message" name="message" class="message" rows="4" cols="30" ></textarea></p><br>

<p class="disclaimer">We are always interested in hearing from you. 
Your feedback will help us improve your online experience.</p>
<p><input class="submit" type="submit" value="Send"/></p>
</div></div></form>
4

2 に答える 2

1

投稿パラメーターにオブジェクト表記を使用してみてください。

var data = {
    name: $("input#name").val(),
    email: $("input#email").val(),
    topic: $("select#topic").val(),
    message: $("textarea#message").val()
};
$.ajax({  
    ...
    data: data,  
    ...
});
于 2012-11-03T00:56:14.820 に答える
0

これはあなたの問題だと確信しており、同じ問題を抱えている他の人がURLのデータを適切にエンコードして解決するのを見てきました. encodeURIComponentを参照してください

あなたのコード

        var dataString = 'name='+ name + '&email=' + email + '&topic=' + topic + '&message=' + message;

name が "my name" の場合、これは IE9 で壊れます。他のブラウザでは文字列を自動的にエンコードし、データを送信する前にそれを試します。

于 2012-11-06T00:34:42.997 に答える