我目前正在验证一些输入clientside。当用户提交表单,我要检查的值的形式输入,然后做一些事情,一旦所有的检查完成等待,直到多个函数,可能或可能不会调用Ajax内部完成jQuery?
$('form').submit(function() {
var input1 = $('form #input1');
var input2 = $('form #input2');
//validate both input values
validate_input(input1);
validate_input(input2);
//wait until all validation complete to execute code here
return false;
});
在这里,“validate_input”功能将检查输入值。如果它通过了初始检查(如字符长度),那么它将发出一个AJAX请求以进行进一步验证(例如检查用户名是否被采用)。事情是这样的:
function validate_input(input){
value=input.val();
if (value.length<4){
//code to execute if input is too short
}
else {
$.ajax({
type: 'get',
url: check_input_url,
data: input.serialize(),
success: function(data){
if (data=="invalid") {
//code to execute if invalid
} else {
//code to execute if valid
}
}
});
}
}
我目前使用jQuery.when()和.done()函数,但做()函数不等到所有的validate_input功能完全完成(包括AJAX回调,从所谓的validate_input)
$.when(
validate_input(input1),
validate_input(input2)
).done(function(){
//code here
});
我怎么会等到所有validate_input功能齐全(有任何可能的AJAX回调完成),执行进一步的代码之前?
就是这样,我并没有返回Ajax对象! – mrl 2014-09-03 21:29:41