2015-08-01 2 views
2

Я пытаюсь создать систему проверки чеков для предотвращения дубликатов. Код ниже возвращает true или false правильно, но по какой-то причине он не запускает систему класса ошибок для отображения ошибки.Фонд Abide с функцией AJAX

JavaScript

$(document).foundation({ 
abide : { 
    validators: { 
     checkUser: function(el, required, parent) { 
      var result = $.ajax({ type: "GET", url: "../functions/checkUsername.php",data:{'username':el.value}, async: false }).responseText; 
      return result; 
     } 
    } 
} 
}); 

РНР скрипт проверяет имя пользователя и возвращает истину или ложь.

Если кто-то знает, что я делаю неправильно, буду благодарен.

+1

Ваш сценарий буквально печатает true/false? Вы получаете строку, которая всегда будет истинна, если это не пустая строка. «false» не является ложным. – MinusFour

ответ

0

Звонок в $.ajax() возвращает обещание, потому что он не блокирует. Я не думаю, что Abide обрабатывает обещания: возможно, он просто ожидает true или false, и так как ваш результат может быть достигнут true (это не null, ни und e оштрафовано), он считает, что введенный пользователем ввод.

+0

Вопрос в том, как это можно сделать? – James

+0

Попробуйте вручную [запустить событие изменения в обратном вызове XHR] (http://stackoverflow.com/a/27507025/315306) – Raffaele

+0

Я исправил его, запустив результат через eval(); – James

Смежные вопросы