我找不到解决方案,我需要覆盖以前设置的提交事件处理程序。在我的例子中,我有一个iframe页面,他们自己提交(可以有验证错误,并返回false)。所以,我需要做的:覆盖表单提交事件与jQuery(1.3.2)
$('<iframe></iframe>')
.load(function() {
content = $(this).contents()
form = content.find('form')
previous_form_submit = .... //This is my question
form.unbind("submit")
form.submit(function() {
var valid = previous_form_submit()
if (valid) {
$.post(form.attr('action'), form.serialize(), function(data) {
//do something
})
})
})
编辑:为了更清晰的,问题是重写事件,但没有失去之前的处理与验证。
EDIT2:我使用jQuery 1.3.2
我要去另一种解决方案,但我感到好奇,怎么能做到这一点。
谢谢。
这些变量(“content”,“form”,“previous_form_submit”)都应该用'var'关键字声明!就像现在一样,它们对页面来说是全球性的! – Pointy 2010-07-23 12:56:35
另外:你已经打电话给“解绑”了,所以你的问题真的是关于如何*保存*任何以前的提交处理程序? – Pointy 2010-07-23 12:57:30
是的,只是我的原始代码的摘录。是的,我的意思是:我需要重写当前的提交事件处理程序,但我需要保存以前的处理程序,以进行验证(在我的示例中是前一个处理程序)。 – Hugo 2010-07-23 13:02:11