gpt4 book ai didi

jquery - 撤消 PreventDefault() 方法

转载 作者:行者123 更新时间:2023-12-01 04:44:32 29 4
gpt4 key购买 nike

我想知道是否有任何方法可以在提交时“撤消”preventDefault() 方法。我有这段代码可以解决这个问题,但我想知道是否有更有效的方法。

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完成。

谢谢

最佳答案

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

return falsee.preventDefault()e.stopPropagation() 的作用相同,因此您可以通过简单地返回您的标志来简化您的代码。

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;
});

关于jquery - 撤消 PreventDefault() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31875392/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com