首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何重新启用event.preventDefault?

如何重新启用event.preventDefault?
EN

Stack Overflow用户
提问于 2009-07-22 09:37:31
回答 7查看 147.6K关注 0票数 83

我有一个网页,我已经阻止了所有提交按钮上的默认操作,但是我想在按钮上重新启用默认提交操作,我该如何做?

我目前正在使用以下方法阻止默认操作:

代码语言:javascript
复制
$("form").bind("submit", function(e){
e.preventDefault();
});

我已经使用以下方法成功地做到了这一点:

代码语言:javascript
复制
$(document).ready(function(){
$("form:not('#press')").bind("submit", function(e){
e.preventDefault();
});

但是,当按钮被单击时,我可以动态地执行此操作吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-07-22 09:45:30

您必须解除绑定事件,然后重新绑定到不执行preventDefault的单独事件,或者在解除绑定后稍后在方法中自己调用默认事件。没有神奇的event.cancelled=false;

按要求

代码语言:javascript
复制
 $('form').submit( function(ev){

         ev.preventDefault();

         //later you decide you want to submit
         $(this).unbind('submit').submit()

  });
票数 125
EN

Stack Overflow用户

发布于 2009-07-22 10:02:21

你要么按照redsquare建议的那样使用下面的代码:

代码语言:javascript
复制
function preventDefault(e) {
    e.preventDefault();
}
$("form").bind("submit", preventDefault);

// later, now switching back
$("form#foo").unbind("submit", preventDefault);

或者,只要允许提交,就分配一个表单属性。如下所示:

代码语言:javascript
复制
function preventDefault(e) {
    if (event.currentTarget.allowDefault) {
        return;
    }
    e.preventDefault();
}
$("form").bind("submit", preventDefault);

// later, now allowing submissions on the form
$("form#foo").get(0).allowDefault = true;
票数 13
EN

Stack Overflow用户

发布于 2011-11-20 01:48:11

代码语言:javascript
复制
function(e){ e.preventDefault();

它的对立面

代码语言:javascript
复制
function(e){ return true; }

干杯!

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1164132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档