我的<form>
提交沒有做任何事情,我認爲這是因爲動作被一些JQuery代碼攔截(還有什麼?)。在我相當複雜的Web應用程序中,我甚至無法找到哪行代碼攔截行爲 - 是的,我寫了他們的每一行,但我仍然不知道。如何找到截取我的表單提交的內容?
問題是:一般來說,有沒有一種有效的方法來跟蹤哪段JavaScript代碼正在攔截指定的操作?
我的<form>
提交沒有做任何事情,我認爲這是因爲動作被一些JQuery代碼攔截(還有什麼?)。在我相當複雜的Web應用程序中,我甚至無法找到哪行代碼攔截行爲 - 是的,我寫了他們的每一行,但我仍然不知道。如何找到截取我的表單提交的內容?
問題是:一般來說,有沒有一種有效的方法來跟蹤哪段JavaScript代碼正在攔截指定的操作?
console.log($('form').data('events'));
將爲您提供給定DOM元素的附加事件列表。
$.each($('form').data('events'), function() {
$.each(this, function() {
console.log(this['handler'].toString());
});
});
+1永遠不會知道!非常有用的信息。 – techfoobar 2012-07-21 13:10:13
即使對於jQuery代碼,這可能並不全面。例如。你可以劫持點擊提交按鈕:http://jsfiddle.net/hbDah/ – millimoose 2012-07-21 13:16:01
@millimoose,在這種情況下,只需調整選擇器,除了表單之外,還可以使用':submit'。 – 2012-07-21 13:19:40
一個快速簡便的方法是使用谷歌Chrome瀏覽器的開發者工具:
,你甚至可以得到它的源代碼。
submit
+1謝謝,很高興知道。 – Jerry 2012-07-21 14:33:34
事實證明,沒有什麼是攔截我的表單提交動作處理程序。爲了節省屏幕空間,我隱藏並顯示了所有評論提交按鈕 - 「$('。comment_submit_button')。hide(); ('。comment_submit_button')。show(); });()。('。comment_textarea')。focus(function(){(this).closest('form')。 ()。('。comment_submit_button')。hide(); });('。comment_submit_button')。blur(function(){ $(this).closest('form')。 '當我點擊一個提交按鈕時,它的評論textarea'blur'忠實地隱藏了提交按鈕,並且不提交我的表單。擺脫上面的JS作品,但是有真正的答案嗎? – Jerry 2012-07-21 14:28:50