2013-05-18 53 views
0

我在自動提交表單時遇到問題,我準備用文檔上的ajax代碼調用該表單。我希望它保持在index.php上,因爲用戶點擊提交,但代碼似乎並不活躍,而是立即將我帶到new_work.php。從我讀過的你不需要使用preventDefault和帶有ajaxForm的stopPropagation。使用ajax發送表單時發生的問題

var initAjaxForm = function() { 
    ('#ajax_form').ajaxForm({ 
     success: function(data) { 
      $('body').html(data); 
     } 
     }); 
    } 

$(document).ready(function() { 
    $('body').load("new_work.php", function() { 
     initAjaxForm(); 
    }); 
}); 

在html標記中沒有重要的東西。只是一個空的骨架形式

<form action="new_work.php" method="post" id="ajax_form">

我使用的是給ajaxForm插件,因爲這是我知道通過AJAX發送文件的唯一途徑。如果有更好的解決方案,請告訴我!謝謝。

編輯:我得到的錯誤是:

遺漏的類型錯誤:對象#ajax_form有沒有方法 '給ajaxForm'

回答

0

已加載的jQuery Form Plugin? ajaxForm沒有內置到標準的jQuery中。

ajax_form HTML表單的ID嗎?

+0

對兩者都是。我在OP中發佈了表頭。 –

+0

是在'index.php'還是'new_work.php'中的表單頭?如果在前者中,它將被'load'覆蓋,並在調用ajaxForm時消失。 –

+0

這是在new_work.php ...我可以做什麼使它在負載被調用後工作? –

0

嘗試添加美元符號;

$('#ajax_form').ajaxForm({ 
+0

D'oh。這擺脫了錯誤。但代碼仍然帶我到new_work.php –

+0

爲什麼你的身體加載的PHP文件?嘗試只需要調用函數。 –

+0

我想這不是必須的,但我把它放在那裏幫助我更好地組織我的網頁。它只適用於函數調用,如果我沒有首先使用ajax調用獲取數據。但我猜想即使假設我想解決爲什麼這樣做的原因,並讓它以這種方式工作,而沒有從一開始就有形式。 –