我想知道在submit上是否存在“撤消”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来完成。
谢谢
发布于 2015-08-07 11:04:55
在提交时,您无法撤消e.preventDefault(),因为您正在处理e的稍后实例。
return false与e.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;
});https://stackoverflow.com/questions/31875392
复制相似问题