2016-05-23 8 views
0

Я использую плагин formvalidation.io, и я пытаюсь проверить, что поле будет уникальным в таблице базы данных. Я сделал сравнение, и я возвращаю результат (уникальный или нет) с помощью ajax. Я использую «валидатор обратного вызова» из форматирования плагина (http://formvalidation.io/validators/callback). Вот мой код:Formvalidation ajax не может прочитать сообщение свойства undefined

callback: { //check documento no repetido 
    message: 'Ya existe un estudiante con el mismo número de documento', 
    callback: function (value, validator, $field) { 
     var url = "documento-existe"; 
     $.ajax({ 
      type: "POST", 
      url: url, 
      data: $("#numero_documento").serialize(), 
      headers: { 
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
      }, 
      success: function(data) 
      { 
       console.log(data); 
       return data; 
      } 
     }); 
    } 
} 

Этот код дает мне ошибку ncaught TypeError: Cannot read property 'message' of undefined в консоли JavaScript. Зачем возникает эта ошибка?

Я знаю, что есть «удаленный валидатор» из плагина formvalidation для проверки ajax-through (http://formvalidation.io/validators/remote/), но я использую Laravel, и мне нужно отправить заголовки ajax (X-CSRF-TOKEN), а «удаленный валидатор» не имеет возможности отправлять заголовки ajax.

+0

Вы возвращаетесь { "действителен": истинно} или { "действительным": ложь} из бэкэнда? – Digitlimit

+0

Да! Я попытался вернуться {"valid": true} или {"valid": false} –

+0

Можете ли вы добавить свой контроллер на свой вопрос – Digitlimit

ответ

1

И наконец, метод 'remote' принимает заголовок. Он не был указан в документации. Мое решение было:

remote: { 
    message: 'Ya existe un estudiante con el mismo número de documento', 
    url: 'documento-existe', 
    type: 'POST', 
    data: function() { 
     return { 
      numero_documento: $("#numero_documento").val() 
     }; 
    }, 
    headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
    } 
} 

Во всяком случае, мне не нравится это предупреждение в консоли:

Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

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