2013-01-14 80 views
0

我有一個由某個php框架自動開發的表單。我想爲表單輸入添加自定義驗證,並在驗證失敗時防止提交表單。提交表單後調試ajax調用

要做到這一點,我寫了下面的腳本:

$("form.pods-form-pod-katilimci").submit(function(event){ 
    telefon = $("form.pods-form-pod-katilimci #pods-form-ui-pods-field-oncelikli-telefon"); 
    email = $("form.pods-form-pod-katilimci #pods-form-ui-pods-field-email"); 
    if($.trim(telefon.val()).length == 0 && $.trim(email.val()).length == 0) { 
     alert("Size ulaşabilmemiz için eposta adresi veya telefon numaranızdan birisini mutlaka doldurmalısınız."); 
     event.preventDefault(); 
     return false; 
    } 
}); 

它可以正常工作。沒有問題。但提交表單會觸發一個自動的ajax調用,並且該調用會繞過我的驗證。因此,preventDefault()不能阻止提交表單。

我想找出哪個JavaScript函數導致這種行爲使用Firebug。我查看了表單的html源代碼,但沒有提交evend觸發的函數的明確標記。由於這是一個Ajax調用,我無法弄清楚在Firebug中使用「Break on Next」提交表單後調用哪個函數。

的形式在這個頁面上:http://www.aep.gov.tr/kullanici-islemleri/uyelik-bilgileri/

我如何可以找出哪些JavaScript函數提交表單後觸發。

+0

在我的想法,形式**提交**行動只是** subm它()**不接受任何其他參數或匿名函數,不是嗎?所以我認爲你不能寫任何程序作爲提交內容。 –

+0

上面的'submit'函數不是'form'對象的'submit'方法。它是'form.submit'的jquery事件處理函數。 –

+0

也許我不理解jQuery提交的行爲。我不確定,但您可以參考[官方文檔](http://api.jquery.com/submit/)獲取更多信息,它表明'.submit()**不接受任何參數**。 '... submit(function()...'中沒有參數,所以我認爲事件對象可能是'this',而不是代碼中的'event'。 –

回答