首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >撤消preventDefault()方法

撤消preventDefault()方法
EN

Stack Overflow用户
提问于 2015-08-07 10:19:35
回答 1查看 3.9K关注 0票数 2

我想知道在submit上是否存在“撤消”preventDefault()方法的方法。我有这样的代码,但我想知道是否有一种更有效的方法。

代码语言:javascript
复制
var $form = $('form');
var canSubmit = false;

$form.data('working', false);

$form.submit(function(e){
    if (form.validations.form($form)) {
        if (!$form.data('working')) {
            $form.data('working', true);

            if (canSubmit) {
                // make the post here
            } else {
                e.preventDefault();
                $.get(BASE+'file.txt', function(response){
                    $form.data('canSubmit', true);
                    $form.submit();
                });
            }
        }
    } else {
        $form.data('working', false);
        e.preventDefault();
        return false;
    }
});

这是因为我必须在完成验证之后读写一个文件,然后再将文章发送到页面。这篇文章不能由ajax来完成。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 11:04:55

在提交时,您无法撤消e.preventDefault(),因为您正在处理e的稍后实例。

return falsee.preventDefault()e.stopPropagation()一样,因此您可以通过简单地返回标记来稍微简化代码。

代码语言:javascript
复制
var $form = $('form');
var canSubmit = false;

$form.data('working', false);
$form.submit(function(e){
    if (form.validations.form($form)) {
        if (!$form.data('working')) {
            $form.data('working', true);
            if (!canSubmit) {
                e.preventDefault();
                $.get(BASE+'file.txt', function(response){
                    canSubmit = true;
                    $form.submit();  // trigger recursive call
                });
            }
        }
    } else {
        $form.data('working', false);
    }
    return canSubmit;
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31875392

复制
相关文章

相似问题

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