我如何从此 JSON 匿名函数返回 true 或 false
http://www. position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ 我正在使用此表单插件。我们可以在其中调用单独的函数以进行验证
<input type="text" id ="empno " class="validate['required',FuncCall[empnos]]">
“Funccall[empnos ]”,即文件 Jquery-validation-en.js 将调用名为 empvalidate() 的单独 JS 函数。
"empnos" : {
"nname":"empvalidate()",
"alertText":"* This EMP NO is not there "
},
function empvalidate(){
var empno = $("#empno").val();
if(empno!=''){
$.ajaxSetup ({cache: false});
$.getJSON("emp.php",{'param1' : $("#param1").val(),'empno' :$("#empno").val()},
function (data){
if(data['status']==="true"){
exists="true";
}else{
exists="false";
}
});
}
return exists;
}
上述函数 iam 无法返回 true 或 false,因为它具有匿名函数。 当状态为 true 时我如何返回 true,反之亦然。它总是返回 false
http://www.position-absolute.com/articles/jquery-form-validator-because-form-validation-is-a-mess/ Iam using this form plugin.where we can call Separate function inorder to do validation
<input type="text" id ="empno " class="validate['required',FuncCall[empnos]]">
"Funccall[empnos]" which is File Jquery-validation-en.js will call separate JS function called empvalidate()
"empnos" : {
"nname":"empvalidate()",
"alertText":"* This EMP NO is not there "
},
function empvalidate(){
var empno = $("#empno").val();
if(empno!=''){
$.ajaxSetup ({cache: false});
$.getJSON("emp.php",{'param1' : $("#param1").val(),'empno' :$("#empno").val()},
function (data){
if(data['status']==="true"){
exists="true";
}else{
exists="false";
}
});
}
return exists;
}
From The above function iam not able to return true or false as it has anoymous function.
How can i return true when the status is true and vice versa.It is always returning me false
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Ajax 方法 getJSON 异步执行,因此您的方法在向服务器请求返回值之前返回“exists”。
因此,您需要将 ajax 请求设置为 async = false,如下所示:
UPD: 好的,请参阅函数的完整版本:
小心,我没有测试上面的代码,因此您需要了解每一行代码的原因。
Ajax method getJSON performs asynchronously, so your method returns 'exists' before it requested the server for a return value.
So you need to make your ajax request as async = false, like this:
UPD: Okay, see the full version of your function:
Take care, I did not test the code above, so you need to understand the reason of each line of the code.