2013-09-24 93 views
1

當時我在文檔的末尾:在提交功能不叫

<script> 
    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 


    $(document).ready(function() { 


    $('#eventForm').submit(function() { 
     console.log("I am on submit"); 

    }); }); 
</script> 

現在submitEvent是按鈕,這不是一個形式,以便和其上。點擊事件的原因中。

當按鈕被按下的表單提交正確觸發:

現在我期待着另一個事件被解僱時提交被觸發,這實際上是某種原因被忽略。取而代之的console.log的,我並不奇怪打算使用AJAX,但即便如此,則不會觸發事件的console.log不打印任何東西..

更新,並作爲你的建議仍然沒有:-):

$(document).ready(function() { 

    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 




    $('#eventForm').submit(function() { 
     console.log("I am on submit"); 

    }); 


    }); 
+0

嗯,我該如何檢查ajax是否會被調用。嘗試改變dom ajax onSuccess中的一些值? – Aubergine

+1

正如我所說的,在處理程序中放置一個斷點,看它是否被擊中。或者如果你想要從九十年代開始進行調試,那就加一個'alert'。 :-) –

+0

:-D片刻! :-D – Aubergine

回答

1

如果您說表單提交處理程序沒有被調用的原因是您沒有在控制檯中看到輸出,請記住提交表單完全關閉並替換頁面。在控制檯被清除之前,您可能沒有時間查看日誌消息。


在評論,你說:

嗯,所以我怎麼能檢查是否AJAX將被調用。

您可以通過在console.log語句中設置斷點並查看斷點是否被命中來檢查。或者,如果您想調試1990年代風格,請使用alert

但請注意,如果表單的結果將替換頁面,則從表單提交處理程序中執行ajax是不可靠的。 (如果表單的結果不會替換頁面,則可能是好的。)這是因爲ajax是異步的,這意味着您的提交處理程序可能啓動它,但它沒有時間在被取消之前完成由拆解。

+0

我希望我的大腦能夠像這樣工作。 :-) – Aubergine

+0

@Aubergine:LOL –

1

你只需要移動就緒功能

<script> 
    $(document).ready(function() { 
     $("#submitEvent").click(function() { 
      // run ajjax code here 
     }); 

     $('#eventForm').submit(function(e) { 
      e.preventDefault(); // stops the page from submiting 
      console.log("I am on submit"); 
     }); 
    }); 
</script> 

我更新的代碼,你不需要提交表單裏面的代碼。點擊運行ajax。

+0

問題就在腳本上方:*「**在文檔末尾**:」*(我強調)。 –

+0

是的,我更新了我的問題,幷包括準備反正 - 仍然沒有:-D – Aubergine

+0

@Aubergine看到我的更新 – Ibu

1

嘗試......

$(document).ready(function() { 

    $("#submitEvent").click(function() { 
     $("#eventForm").submit(); 
    }); 

    $('#eventForm').submit(function(e) { 
     e.preventDefault(); 
     console.log("I am on submit"); 
    }); 
}); 

它將停止提交表單,所以你可以看到,現在,如果實際被觸發與否的事件。

它可能只是在您看到控制檯輸出之前提交的表單正在重新加載頁面。

+0

它實際上打印後更新!所以@ T.J。 Crowder是正確的? – Aubergine

+0

是的。只要處理提交,但是你打算,現在你知道你的事件處理程序正在工作:) – Archer