之前我没有使用过ajax,因此选择了jQuery Form plugin。 我的目的是让插件提交表单,使用我的验证来检查表单字段是否填写正确,如果是这样提交表单。
以上所有工作,验证除外。当我点击“提交”时,验证会短暂显示,然后框会淡出,因为我在ajax表单脚本中设置了成功调用。
var options = {
beforeSubmit: validation,
success: function() {
var url = '/includes/embed-topbar-login-account';
$('#account').load(url, function() {
$('#account-options').fadeOut('slow');
});
}
};
$('#login').ajaxForm(options);
function validation() {
var prompt = '<div class="required-prompt"><small>This field is required.</small></div>';
var promptEmail = '<div class="required-prompt"><small>Invalid email address.</small></div>';
var required = true;
$('.required-prompt', this).remove();
$('.required', this).each(function() {
if( !$(this).val() ) {
$(this).after(prompt);
required = false;
} else {
$('.required-prompt', this).remove();
}
});
return required;
}
如果验证返回'false'(目前正在进行),是否有人可以告诉我是否需要额外的步骤来确保提交暂停。
答案 0 :(得分:0)
您应指定beforeSubmit
<强> SOURCE Documentation 强>
$('#login').ajaxForm({
success: function() {
var url = '/includes/embed-topbar-login-account';
$('#account').load(url, function() {
$('#account-options').fadeOut('slow');
});
},
beforeSubmit: function(arr, $form, options) {
// The array of form data takes the following form:
// [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
// return false to cancel submit
return validate(); //Assuming validate is your function doing validation.
}
});