2016-03-12 71 views
0

我不明白爲什麼我無法正確使用此代碼執行ajax魔術。它只是在服務器處理請求時重定向到新頁面。我試過在jquery函數中放入一個console.log("test");,但它永遠不會被調用。所以我猜表單提交從來沒有通過我的ajax,但直接到服務器。Ajax提交重定向到新頁面(不應該)

$("#startTest").submit(function(e) 
      { 
       console.log("test"); //This is never called 
       e.preventDefault(); 

       $.ajax(
       { 
        url : 'handler', 
        type: "POST", 
        data : $(this).serialize(), 
        success:function(data) 
        { 
         alert(data); 
        }, 
        error: function() 
        { 
         alert("failure"); 
        } 
       }); 
      }); 


<form id="startTest" method="POST" action="handler"> 
    <input type="hidden" name="answer" value="startTest"> 
    <input type="text" name="firstname" value="" placeholder="Navn" id="navn" autocomplete="off"><br> 
    <input type="submit" name="submit" value="Start test"> 
</form> 
+0

創建一個的jsfiddle出來的,它只是罰款會調用:https://開頭的jsfiddle。 net/r7cwv716 /您的控制檯中是否有任何錯誤? – jehna1

+0

我沒有在控制檯中的錯誤:l – PushALU

回答

0

清空表單動作。如果你的表單有一個動作,那麼當你提交你的腳本時,就遵循這個動作。但是你要通過AJAX實現這一過程,以便您不填寫行動tag.Something這樣

<form id="startTest" method="POST" action=""> 
<input type="hidden" name="answer" value="startTest"> 
<input type="text" name="firstname" value="" placeholder="Navn" id="navn" autocomplete="off"><br> 
<input type="submit" name="submit" value="Start test"> 

+0

這並沒有做到這一點。它只會調用另一個由click函數觸發的ajax函數。 – PushALU

+0

那個小提琴示例顯示你console.log工作正常,除此之外我不知道可能會導致這種情況?也許你的處理程序url有重定向頁面的東西? –