我的<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