【问题标题】:How Can i return true or false from this JSON Anonymous Function我如何从这个 JSON 匿名函数返回真或假
【发布时间】:2010-11-28 18:18:44
【问题描述】:

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,因为它具有匿名函数。 当状态为真时如何返回真,反之亦然。它总是返回假

【问题讨论】:

    标签: jquery jquery-selectors


    【解决方案1】:

    Ajax 方法 getJSON 异步执行,因此您的方法在向服务器请求返回值之前返回“存在”。 所以你需要将你的 ajax 请求设置为 async = false,如下所示:

    UPD:好的,看看你的函数的完整版本:

    function empvalidate() {
      var exists = false;             // default return value is false
      var empno = $("#empno").val();
      if (empno != '') {
        $.ajax({
          url: "emp.php",
          async: false,
          dataType: "json",
          data: {'param1': $("#param1").val(), 'empno': $("#empno").val()},
          success: function (data) {
            exists = data.status;     // set status of existence to outer variable
          }
        });
      }
      return exists;                  // return actual value
    }
    

    注意,上面的代码我没有测试,所以你需要了解代码每一行的原因。

    【讨论】:

    • 在哪里可以返回函数之外“存在”的值
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 2015-10-05
    • 2019-10-15
    • 2016-06-25
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多