【发布时间】:2014-04-28 19:47:00
【问题描述】:
我创建了一个表单。在提交表单时,我发出一个 ajax 请求,告诉我数据是否有效。我想要做的是,如果 ajax 响应告诉数据是有效的,那么它应该提交表单,但如果数据无效,那么它不应该提交表单。
$('#agentLogin').submit(function(ev){
ev.preventDefault();
var username=$('#agentEmail').val();
var password=$('#agentPassword').val();
$.ajax({
url: '<?php echo $this->createAbsoluteUrl('site/agentLogin'); ?>',
type: 'POST',
data: {
email: username,
pwd: password
},
success: function(data){
if(data === 'invalid'){
$('#agentLoginStatus').html('Invalid Username and password');
}else if(data === 'deactivated'){
$('#agentLoginStatus').html('Account is deactivated');
}else if(data === 'valid'){
// submit form here
}
}
});
});
问题:-当数据无效时不提交表单。但如果数据有效,那么它也不会提交表单。我该如何解决这个问题?
已经尝试过:-
$(this).submit();
return true;
【问题讨论】:
-
url: '<?php echo $this->createAbsoluteUrl('site/agentLogin'); ?>',这是正确的吗?查看报价。 -
@jai 是的,它是正确的。我得到了很好的 ajax 响应
-
尝试使用原生的
this.submit()而不是jQuery的$(this).submit()继续提交。 -
@JonathanLonowski 不工作先生
-
@Letmesee 在
.submit(function)中保存对<form>的引用——var form = this;。然后,使用原生提交——form.submit()。this内的$.ajax()回调不会是<form>。
标签: javascript jquery ajax forms