Как я могу вернуть true или false из этой анонимной функции JSON - PullRequest
0 голосов
/ 27 ноября 2010

http://www.position -absolute.com / article / jquery-form-validator-потому-form-validation-is-a-mess / Я использую этот плагин формы, где мы можем вызвать отдельную функцию inorderдля проверки

    <input type="text" id  ="empno " class="validate['required',FuncCall[empnos]]">

"Funccall [empnos]", который является файлом Jquery-validation-en.js, будет вызывать отдельную функцию JS, называемую 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;
    }

из вышеприведенной функцииЯ не могу вернуть истину или ложь, так как он выполняет аномальную функцию.Как я могу вернуть истину, когда статус истинный и наоборот. Он всегда возвращает мне ложь

1 Ответ

2 голосов
/ 28 ноября 2010

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
}

TakeЯ не проверял приведенный выше код, поэтому вам необходимо понять причину каждой строки кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...