2010-12-02 46 views
2

在我的任何頁面上,例如this one,當點擊「有問題」按鈕左欄時,表單會通過jQuery Tools疊加顯示。你填寫表單,提交給PHP腳本(本地的),如果驗證並提交,你會得到一個感謝信或錯誤信息,這取決於服務器的響應。在FF,Safari和Opera中很好用,但不適用於IE或Chrome。 IE和Chrome只是去打印.ajax在腳本URL的空白頁面上查找的返回消息。我必須有一些不正確的,因爲即使我的跨域cURL ajax腳本工作,但不是這樣!下面是代碼jQuery .ajax提交在IE和Chrome中不起作用

$(document).click(function() { 
     $.validator.methods.equal = function(value, element, param) { 
     return value == param; 
    }; 
    var validator = $("#request").bind("invalid-form.validate", function() { 
      $("#summary").html("Your form contains " + validator.numberOfInvalids() + " error(s), please fix."); 
     }).validate({ 
      //debug: true, 
      errorElement: "em", 
      errorContainer: $("#summary"), 
      errorPlacement: function(error, element) { 
       error.appendTo(element.parent("li")); 
      }, 
      success: function(label) { 
       label.text("ok!").addClass("success"); 
      }, 
      submitHandler: function(form) { 
       $("#processing").show(); 
      var dataString = $(form).serialize(); 
       $.ajax({ 
       type: $("#request").attr('method'), 
       url: form.action, 
       data: dataString, 
       clearForm: true, 
       success: function(data) { 
        if (data=="SuccessMail Sent") { 
         $("#formWrap, #supportHdln").hide(); 
          $("#thankYou").html('<h2><span>Thank You</span> We have received your request.</h2><p>A Customer Service Representative from NinjaTrader will contact you shortly.</p>').fadeIn("slow"); 
         } else { 
          $("#formWrap, #supportHdln").hide(); 
          $("#error").html('<h2><span>Uh Oh</span> We are unable to process your request.</h2><p>Please make sure all fields were filled out correctly. If you are still having trouble, please <a href=\"mailto:[email protected]?subject=Support Email\">email us</a></p>').fadeIn("slow"); 
        } 
        } 
       }); 
      return false; 

      }, 
      rules: { 
        hs_customer_firstname: { 
        required: true, 
        minlength: 2 
       }, 
        hs_customer_lastname: { 
        required: true, 
        minlength: 2 
       }, 
        hs_customer_email: { 
        required: true, 
        email: true 
       }, 
        confirmEmail: { 
        required: true, 
        email: true, 
        equalTo: "#hs_customer_email" 
       }, 
        hs_customer_phone: { 
        required: false, 
        digits: true 
       }, 
        hs_category: { 
        required: true  
       }, 
        hs_customLargeTextField: { 
        required: true, 
        minlength: 20 
       }, 
        math: { 
        required: true, 
        equal: <?php echo $randomNumTotal; ?> 
       } 
      }, 

      messages: { 
       hs_customer_firstname: { 
        required: "Please Enter Your First Name", 
        minlength: "Your First Name Must be at Least 2 Characters" 
       }, 
       hs_customer_lastname: { 
        required: "Please Enter Your Last Name", 
        minlength: "Your Last Name Must be at Leaset 2 Characters" 
       }, 
       hs_customer_email: { 
        required: "Please enter your email address", 
        email: "Please enter a valid email address" 
       }, 
       confirmEmail: { 
        required: "Please Confirm Your Email Address", 
        email: "Please Enter a Valid Email Address", 
        equalTo: "Please Enter the Same Email Address as Above" 
       }, 
       hs_customer_phone: { 
        digits: "Numbers only" 
       }, 

       hs_category: { 
        required: "Please Select a Category" 
       }, 
       hs_customLargeTextField: { 
        required: "Please Leave a Comment", 
        minlength: "Your comment must be at least 20 characters" 
       }, 
       math: { 
        required: "Please Solve the Problem", 
        equal: "Please Solve the Problem Correctly" 
       } 
      } 
     }); 
    }); 

和這裏的運行它

<?php 

if(empty($_POST['hs_customer_firstname']) || empty($_POST['hs_customer_lastname']) || 
empty($_POST['hs_customer_email']) || empty($_POST['hs_category']) || 
empty($_POST['hs_customLargeTextField']) || empty($_POST['math'])) { 
echo ('Success'); 
} 

$headers = 'From: [email protected]' . "\r\n" . 
     'Reply-To: [email protected]' . "\r\n" . 

$firstname = $_POST['hs_customer_firstname'] ; 
//more like this 

mail("[email protected]", "Support Request", 
//$_POST fields 
"From: $email"); 
if(mail($firstname, $lastname, $email, $category, $inquiry)) { 
echo ('Mail Sent'); 
} else { 
echo ('Error: Mail failed'); 
} 

?> 
+0

您看看控制檯中的「網絡」選項卡以查看您的請求嗎? – methodin 2010-12-02 02:50:31

回答

0

它曾與隨機數驗證做,IE和Chrome沒有像在JS代碼中的微小的PHP腳本。一旦我擺脫了這種情況,並從帶有疊加層的表單頁中刪除驗證,將其作爲單獨的JS文件添加到父頁面中。不知道爲什麼隨機數總計不起作用。當我將PHP函數添加到父頁面時,它沒有在驗證中觸發JS錯誤,但是當您正確添加它們時,數字未驗證。噢,贏得一些輸了。

相關問題