【发布时间】:2013-07-26 23:43:27
【问题描述】:
我有一个在用户尝试提交时执行的 jQuery 表单验证脚本。我希望在验证表单之后但在发送之前执行(并完成)另一个带有 AJaX 请求的函数。
这是脚本。 zglosip 函数在单独调用时可以正常工作;即不是来自submit() 函数内部。
zglosip(); (我想被调用的函数)
function zglosip() {
$.ajax({
type : 'post',
url : 'res/php/nZglos.php',
data : {
"erepid" : "111",
"ip" : "222",
"poz" : "333"
},
success : function(data, textStatus, jqXHR) {
tempor.html(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
tempor.html(errorThrown);
},
dataType : 'text'
return true;
});
};
验证脚本(由 Joren Rapini 创建并由我修改)
pole & tempor 是包含某些 div 名称的变量
$("#forml").submit(function(){
//Validate required fields
if ((pole.val() == "") || (pole.val() == blad)) {
pole.addClass("podkresl");
pole.val(blad);
} else {
pole.removeClass("podkresl");
}
// Validate the e-mail.
if (!/\b(https?|ftp|file):\/\/[\-A-Za-z0-9+&@#\/%?=~_|!:,.;]*[\-A-Za-z0-9+&@#\/%=~_|]/.test(pole.val())) {
pole.addClass("podkresl");
pole.val(blad);
}
if ($(":input").hasClass("podkresl")) {
return false;
} else {
if (zglosip() == true) {
return true
}
}
});
正如您已经发现的那样,我试图在 zglosIp() 返回 true(脚本底部的 if 语句)之后返回 submit() 函数的 true。不幸的是,这不起作用,我也尝试在其中调用 zglosip() 并带有单独的 function{return true} 但我肯定没有正确使用它。
请帮帮我。
【问题讨论】:
-
tempor.html(数据);应该是 $("#tempor").html(data);你应该有