2014-10-27 52 views
0

我有一些「正在工作」的代碼,但沒有按照我希望的方式執行。無法獲得.js以表單POST的形式調用

在我的網頁,我在報頭中的一些代碼:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script src="update.js"></script> 

,並在我的主頁,我有:

<form id="updateChanges" method="POST" action="update.php"> 
...code... 
</form> 

當我點擊這個表格內的按鈕,我想讓update.js內部的代碼執行,但是頁面重定向到update.php,併成功執行我的代碼。我試圖繞過這個重定向,並執行代碼而不進行頁面刷新。我不明白爲什麼它不起作用。

我從教程中瞭解瞭如何使用AJAX的.js。

$(function() { 

    // Get the form. 
    var form = $('#updateChanges'); 

    // Set up an event listener for the contact form. 
    $(form).submit(function(event) { 

    // Stop the browser from submitting the form. 
    event.preventDefault(); 

    // Serialize the form data. 
    var formData = $(form).serialize(); 

    // Submit the form using AJAX. 
    $.ajax({ 
     type: 'POST', 
     url: $(form).attr('action'), 
     data: formData 
    }) 
}); 
}); 

我的JavaScript文件沒有被調用。爲什麼?

+1

第一件事,第一:的jQuery爲什麼兩個版本? – 2014-10-27 21:29:41

+0

從這裏:'https:// developers.google.com /速度/庫/ devguide#jquery'它列出了兩個..所以我複製了兩個。 – lordterrin 2014-10-27 21:30:46

+0

那麼,決定要使用哪個版本並使用它。 – 2014-10-28 08:48:30

回答

0

您已經在form變量中定義了jQuery表單對象,您無需再爲jQuery包裝它。

$(form)所有實例成爲:form

$(function() { 

    // Get the form. 
    var form = $('#updateChanges'); 

    // Set up an event listener for the contact form. 
    form.submit(function(event) { 

     // Stop the browser from submitting the form. 
     event.preventDefault(); 

     // Serialize the form data. 
     var formData = form.serialize(); 

     // Submit the form using AJAX. 
     $.ajax({ 
      type: 'POST', 
      url: form.attr('action'), 
      data: formData 
     }); 
    }); 
}); 
+0

好的 - 我想知道爲什麼它在教程中是這樣的......我嘗試了兩種方法,但都沒有工作。有沒有辦法讓我判斷這個JavaScript文件是否被調用?我嘗試在文件的頂部放置一個alert(「hi」);'但在控制檯中出現錯誤。 – lordterrin 2014-10-27 21:41:33

+0

你能告訴我們錯誤是什麼嗎?我認爲你的代碼(或一個包含的.js文件)的某處存在一個錯誤,它會阻止它被處理。 – 2014-10-27 21:43:38

+0

我現在似乎無法重新創建它 - 我只是嘗試在.js文件中添加alert和'console.log()',但是當單擊我的更新按鈕時,警告和日誌都不顯示。似乎該文件被完全繞過,因爲該頁面轉到update.php並執行它應該的內容。 – lordterrin 2014-10-27 21:47:30