Проблема с отображением ошибки пользователю из AJAX - PullRequest
0 голосов
/ 08 ноября 2018

Я использую код AJAX, в соответствии с которым я обрабатываю ошибки из кода бэкенда. Все работает хорошо, за исключением того, что я хочу оповещать об ошибках индивидуально для пользователя в нумерованном списке

Ожидаемый вывод

1. Please insert a valid phone number
2. Please insert your email
3. Please insert a valid passport number 

Ошибки обработки кода AJAX

error: function(data) {
                //Unblock the spinner
                $.unblockUI();
                var errors = '';
                for(datos in data.responseJSON){
                    errors += data.responseJSON[datos] + '<br>';
                }
                //Alert each error individually
                alert(errors);
            }

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Я бы порекомендовал вам использовать for loop вместо for in. Узнайте, почему здесь

error: function(data) {
  //Unblock the spinner
  $.unblockUI();
  var errors = '';
  for(var i = 0; i < data.responseJSON.length; i++){
    // Remove the "(i+1) + '. ' + " if your json response already contains that part.
    errors += (i+1) + '. ' + data.responseJSON[i] + '\n'; // <-- Notice how the br tag is changed to a new line
  }
  alert(errors)
}

Я также изменил тег <br> на \n, поскольку оповещения не поддерживают теги html.

0 голосов
/ 08 ноября 2018

Мне не понятно из вопроса, хотите ли вы

  1. многострочное оповещение или

  2. несколько диалоговых окон предупреждений как выход

но в случае 1) true, вы должны использовать символ новой строки ("\ n") вместо тега br - см. Новая строка в окне предупреждения JavaScript и код может выглядеть следующим образом:

var i = 1,
    errors = '';

for(datos in data.responseJSON){
    errors += i + '. ' + data.responseJSON[datos] + '\n';
    i++;
}

//Alert each error individually
alert(errors);

Если 2) - то, что вам нужно, вы должны вызывать alert () для каждого сообщения об ошибке

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