2013-02-10 65 views
0

我的代碼的簡化版本:jquery窗體不發送?

JS:

$(function() { 
    $("submit").click(function() { 
     var msg_to = $("#msg_to").val(); 

     var dataString = 'msg_to=' + msg_to; 

     $.ajax({ 
      type: "POST", 
      url: "sendmessage.php", 
      data: dataString, 
      success: function(){ 
       $('.success').fadeIn(200).show(); 
       $('.error').fadeOut(200).hide(); 
      } 
     }); 

     return false; 
    }); 
}); 

HTML

<form method="post" name="form"> 
      <label class="label-left" for="msg_to">Message to</label> 
      <input name="msg_to" id="msg_to" type="text"> 
<input type="submit" value="" class="submit" /> 

php文件郵件的形式向我的電子郵件,並適用於肯定,當我剛將表單發佈到PHP文件中。通過jquery,它不會工作。任何人都可以找到我的代碼中的錯誤?

+0

爲什麼標記爲'php'?這是一個JS問題。 – arkascha 2013-02-10 20:14:45

回答

4
$("submit") 

應該是:

$(".submit") 

首先會查找<submit>標籤。

+0

是的,我已經嘗試過,但沒有成功 – 2013-02-10 20:11:56

3

試試這個:

$(document).ready(function() { // use document query selector then test for ready state 
    $(".submit").click(function() { // submit query selector should have class "." 
     var msg_to = $("#msg_to").val(); 
     var dataString = "msg_to=" + msg_to; 

     $.ajax({ 
      type: "POST", 
      url: "sendmessage.php", 
      data: dataString, 
      success: function() { 
       $(".success").fadeIn(200); // no need for show() 
       $(".error").fadeOut(200); // no need for hide() 
      } 
     }); 

     return false; 

    }); 
}); 
+0

你的第一條評論的改變是沒有必要的。 '$()'與'$(document).ready()'相同。 – Barmar 2013-02-10 20:14:04

+0

是的,但請記住jQuery表示'$(function(){})'是* okay *,但不推薦。最好使用'$(document).ready(function(){});' – 2013-02-10 20:15:25

0

我認爲你的表單提交可以由AJAX請求之前。使用event.preventDefault()函數可以防止表單提交,所以AJAX請求可以完成加載。

$(function() { 
    $(".submit").click(function(event) { // Added the '.' for the class, and the event parameter 
     event.preventDefault(); // This prevents the submit-event to be fired 
     var msg_to = $("#msg_to").val(); 

     var dataString = 'msg_to=' + msg_to; 

     $.ajax({ 
      type: "POST", 
      url: "sendmessage.php", 
      data: dataString, 
      success: function(){ 
       $('.success').fadeIn(200).show(); 
       $('.error').fadeOut(200).hide(); 
      } 
     }); 

     return false; 
    }); 
}); 
0

它的工作原理!它是@Vulcan的解決方案和@Jacedc的組合,並且我在上面的腳本之後導入了jquery的錯誤..