2013-06-07 2 views
1

Я пытался исправить эту ошибку более часа, но все же - абсолютно не повезло. Я мог бы пропустить что-то простое, или просто я не осознаю что-то еще. В любом случае, вот что:JQuery Validator Issue

Я пытаюсь добавить метод проверки на мой валидатор, который, похоже, вызывает проблемы. Вот мой код:

jQuery.validator.addMethod("isGroupExist", function() { 
     var result_value = true; 
     $.post('/includes/script_files/isGroupExist.php', { authorized: true, 
                   groupName: $('#groupName').val() }, function(returnedData) { 
      alert(returnedData); 
      if(returnedData=='true') 
       result_value = false; 
      else 
       result_value = true; 

     }); 
     return result_value; 
    }, "Group Name already exists, please pick a different one." 
    ); 

Пожалуйста, не обращайте внимания на то, как я это написал, я просто попробовал несколько подходов для решения проблемы. В любом случае проблема заключается в том, что «result_value» никогда не будет возвращаться как «false», даже если назначенная ему переменная равна «false». Он остается «истинным» навсегда, когда это явно не предполагается. Я дважды проверял свою функцию, и все работает нормально, включая внешний файл. «returnData» иногда возвращается как «истина», а иногда как «ложь», но, несмотря на его значение, «result_value» не будет обновляться.

Любые идеи?

+0

Похоже, что возвращаемые данные являются логическим значением, и вы не должны проверять его равенство на строку. – butch

+0

returnData - это строка. –

ответ

0

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

$.validator.addMethod("isGroupExist",function(value,element){ 
     var result = $.ajax({ 
          url: "/includes/script_files/isGroupExist.php", 
          type: "POST", 
          async: false, 
          //data: "action=checkusername&username="+username, 
          data: "authorized=true&groupName="+value, 
     }).responseText; 
     return result==="good"?false:true; 
    },"Group Name already exists, please pick a different one.");