2012-07-11 69 views
-2

出於某種原因,此代碼的工作:

$(document).ready(function() { 
    var name = document.getElementById('Name').value; 
    var email = document.getElementById('Email').value; 
    var type = document.getElementById('Type').value; 
    var message = document.getElementById('Message').value; 
    $.post("send.php", { 
     Name: "Matt", 
     Email: "[email protected]", 
     Type: "1", 
     Message: "GO" 
    }, 

    function (e) { 
     alert(e); 
    }); 
}); 

但是這個代碼不:

$(document).ready(function() { 
    $('#btn').click(function() { 
     var name = document.getElementById('Name').value; 
     var email = document.getElementById('Email').value; 
     var type = document.getElementById('Type').value; 
     var message = document.getElementById('Message').value; 
     $.post("send.php", { 
      Name: "Matt", 
      Email: "[email protected]", 
      Type: "1", 
      Message: "GO" 
     }, 

     function (e) { 
      alert(e); 
     }); 
    }); 
}); 

另外,我還檢查了我的#btn和該ID是正確的,所以它不是。第一個代碼返回成功併發送電子郵件。第二個不做任何事情,我無法進行調試,因爲服務器的響應未顯示在我的Chrome開發人員工具網絡查看器中。

下面是HTML形式:

<form id="form" action="" method="POST"> 
       <label for="Name">Name: </label> 
       <input type="text" name="Name" id="Name"> 

       <label for="Email">Email: </label> 
       <input type="text" name="Email" id="Email"> 

       <label for="Type">Type: </label> 
       <select name="Type" id="Type"> 
        <option value="0">General</option> 
        <option value="1">I need a consultation</option> 
        <option value="2">I need a website</option> 
       </select> 

       <label for="Message">Message: </label> 
       <textarea rows="10" cols="50" name="Message" id="Message"></textarea> 
       <br /> 
       <button id="btn" class="submitBtn">Send</button> 
    </form> 
+0

你可以發佈你的'html'嗎?如果不是全部,至少有關部分。你也可以檢查'螢火蟲'有什麼要說的嗎? – 2012-07-11 04:04:29

+1

你確定你的'#btn'的事件處理程序正在工作嗎?嘗試在開始時添加一個'alert()'來查看它是否觸發。 – RobB 2012-07-11 04:05:21

+0

您要發送哪封電子郵件「[email protected]」或「[email protected]」。 「#btn」正在工作看到這個鏈接http://jsfiddle.net/Ssp2v/ – muthu 2012-07-11 04:12:09

回答

2

指定type<button>按鈕

<button type="button" id="btn" class="submitBtn" >Send</button> 

工作例如:http://jsfiddle.net/kXeY8/

有些瀏覽器解釋指定爲沒有type屬性的形式爲<button>默認type提交,導致您的表單提交代替,防止click事件的Ajax請求從完成。

+0

WOW!非常感謝你。爲什麼做這項工作,但其他人不是?即使事件仍然因alert()失敗而被解僱......請解釋 – 2012-07-11 04:35:56

+1

編輯提供了一些上下文。 – deefour 2012-07-11 04:36:25