2011-07-27 6 views
1
<script type="text/javascript" src="/scripts/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="/scripts/jquery.form.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
$("#SendReply").click(function(){          
    $(".error").hide(); 
    var hasError = false; 
    var pathname = window.location.pathname; 
    var random = Math.random(); 

    var messageVal = $("#InquiryResponse").val(); 
    if(messageVal == 'Type your response in this space ...') { 
     $("#InquiryResponse").after('<span class="error"><br><br><font color="red">You forgot to type your response to the inquiry. Please type it in the above space and submit again.</font><br></span>'); 
     hasError = true; 
    } 


    if(hasError == false) { 
     $(this).hide(); 
     if (jQuery.browser.msie != true) { 
     $.post("", 
      { Detail: messageVal}, 
       function(data) { 
        //alert("For non IE"); 
        $("#InqRespForm").slideUp("slow", function() {     
         $("#InqRespForm").before('<h1>Success</h1><p><font color="green">Your message has been sent.</font></p>');        

       }); 
     }); 
     } 
     if (jQuery.browser.msie == true) { 
      jQuery.ajaxSetup({async:false}); 

      $.post(pathname , { Detail: messageVal},function(data) 
       { 

        $("#InqRespForm").width($("#InqRespForm").parent().width()).slideUp("slow"); 
        $("#InqRespForm").before('<h1>Success</h1><p><font color="green">Your message has been sent.</font></p>');     
       }); 
      jQuery.ajaxSetup({async:true});   
     } 


    } 

    return false; 
});       
}); 
</script> 





<form action="" method="post" id="InqRespForm" name=InqRespForm> 
Reply to the above Inquiry : <br/> 
<textarea rows="7" name="Detail" id="InquiryResponse" cols="60" colspan=2>Type your  response in this space ...</textarea> 
<br/> 

<input id="SendReply" name="Send" type="submit" value="Send Response" alt="Reply to Inquiry" /> 

</form> 

フォーム送信時にメールを送信します。 FF、Chromeなどで動作しますが、私はIE8でこの作業をしようとしています。あなたが私に解決策を教えることができるなら、私はあなたにビールを買うでしょう。

+0

は、なぜあなたは同期ポストをやってIEを持っているために働くだろうと他のブラウザではありませんか? – Manfre

+0

理由はありません - 投稿した内容は2日間にわたって進化しました。何もそれを動作させることはありません。心配してください - フロントエンドの動作に間違いはありません。フォームは上にスライドし、メッセージが送信されたことを示します。IE8ではメッセージが送信されません。私は問題がIEの$ .postであると思う。私は間違っている可能性がある。私はjQueryを使って数日前から使い始めました。 – Frustrated

+0

[Jquery postはIE 8以前で動作していません](http://stackoverflow.com/q/13997857/1699210) – bummi

答えて

0

なぜこれをやっていますか:jQuery.browser.msie ????

ブラウザを検出する理由はほとんどありません。そしてあなたのコードには、ブラウザが何であるかを知る必要のあるものは全く見当たりません。

+1

IE8で遅くなる可能性のあるアニメーションを排除するために、悪名高いJavaScriptの実行が遅いです。 – rkaregaran

+0

私はmsieのやり方が異なっています。気づいたら、同じページにフォームを投稿しようとしていて、url = ""すべてのブラウザで動作しますがIEでは動作しません。反対に、pathname変数を使用してURLを明示的に指定すると、FFまたはChromeでは機能しません。 – Frustrated

+0

助けがあれば、私のURLは次のように見えます。 "[link] http://test.mysite.com/sho/me/tails.asp?krm=I&obj=3193&mid=709"/tailsのパラメータは? .asp?krm = I&obj = 3193&mid = 709が問題ですか? – Frustrated

1

私はそれを理解しました。私が将来誰かを助ける場合に備えて、ここに解決策を掲載するつもりです。問題は私が投稿していたURLだった。私のURLはパラメータ化されたURLであり、私は間違った構文/フォーマットを使用していました。 IEとIE以外の分離は本当に必要ではありません。答えは、現在のurlのさまざまなコンポーネントを抽出し、 "data"配列を使って$ .postに渡すことにあります。あなたの入力をありがとう。以下のコードの作業:

<script type="text/javascript" src="/scripts/jquery-1.6.2.min.js"></script> 
<script type="text/javascript" src="/scripts/jquery.form.js"></script> 
<script type="text/javascript" src="/scripts/jquery.url.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#SendReply").click(function(){          

    $(".error").hide(); 
    var hasError = false; 
    var pathname = window.location.pathname; 
    var random = Math.random(); 
    var kar_ = $.url.param("kar"); 
    var obj_ = $.url.param("obj"); 
    var me_ = $.url.param("me"); 


    var messageVal = $("#InquiryResponse").val(); 


if(messageVal == 'Type your response in this space ...') { 
    $("#InquiryResponse").after('<span class="error"><br><br><font color="red">You forgot to type your response to the inquiry. Please type it in the above space and submit again.</font><br></span>'); 
    hasError = true; 
} 


if(hasError == false) { 
    $(this).hide(); 

    $.post("inqdetails.asp", 
     { Detail: messageVal, kar: kar_, obj: obj_, me: me_}, 
      function(data) { 

       $("#InqRespForm").slideUp("slow", function() {     
        $("#InqRespForm").before('<h1>Success</h1><p><font color="green">Your message has been sent.</font></p>');        

      }); 
    }); 

} 

return false; 
});       
}); 
</script> 
+0

挫折しました、今私はもういない! –

0

を<ヘッド>タグが

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

を開始した直後に、あなたのHTML内の行を入れてそれはIE8 +