Jquery 撤消默认值()方法
我想知道是否有任何方法可以在提交时“撤消”preventDefault()方法。我有这段代码,但我想知道是否有更有效的方法Jquery 撤消默认值()方法,jquery,Jquery,我想知道是否有任何方法可以在提交时“撤消”preventDefault()方法。我有这段代码,但我想知道是否有更有效的方法 var $form = $('form'); var canSubmit = false; $form.data('working', false); $form.submit(function(e){ if (form.validations.form($form)) { if (!$form.data('working')) {
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 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;
});
这样行吗<代码>$('form')。解除绑定('submit')代码>我已经有一段时间没有处理过这个问题了,如果没有,请道歉!但是如果我取消了提交的绑定,它将无法发布是的,你是对的,我只在
单击不提交时使用了此选项。我一点也没想到!我的badIt看起来像是在执行两步检查,因此不,您不能只撤消默认调用,因为它是在e
的单独实例上进行的。你能解释一下你的“我必须在验证完成后读写一个文件”的评论吗,因为代码似乎不完整。在我做了第一次验证(姓名、电子邮件等)后,我需要做一个psedo ajax,只有在回复之后,帖子才会被删除continue@Kup:应该有帮助。基本上,您的函数在调用async$后立即退出。get
,因此您不可能及时返回以修改以前的提交:)