我无法在ajax成功函数中提交表单:
$('#formId').on('submit', function (e) {
e.preventDefault();
});
$('#submit').on('click', this.doStuff);
doStuff: function () {
$.get('url').done(function (data) {
if (data.IsSuccessful) {
$('#formId').off('submit');
$('#formId').submit();
}
else {
}
});
}
奇怪的是它会在第二次触发此事件时进行提交,但不是第一次触发,它将独立提交这两行代码,但不在get内部(调试器确实触及它)。如何根据ajax调用成功提交表单?
答案 0 :(得分:4)
e.preventDefault();
方法阻止表单过去并重定向到ajax调用。试试这个:
$('#submit').click(function (e) {
e.preventDefault();
$.get('url').done(function (data) {
if (data.IsSuccessful) {
$('#formId').submit();
}
else {
}
});
});
答案 1 :(得分:0)
稍微调整一下你的代码:
submit
事件将处理所有逻辑。因此,无论您的表单如何提交,都会触发该事件。
var check = false;
$('#formId').on('submit', function (e) {
return check;
});
$('#submit').on('click', function(){
$.get('url').done(function (data) {
if (data.IsSuccessful) {
check = true;
$('#formId').submit();
}
else
{
check = false;
}
});
return false;
});