изменение входного css путем сравнения входного имени - PullRequest
1 голос
/ 04 ноября 2019
error: function (xhr) {
 $.each(xhr.responseJSON.errors, function(key) {
    console.log(xhr.responseJSON.errors);
     return key<2;
});
},

Над функцией возвращает мне следующий результат:

enter image description here

и у меня есть поля ввода с одинаковыми именами civil_no efirst и esecond

Я хочу сделать границу ввода красной, если имя поля указано в ответе json.

Я пробовал что-то подобное ниже, но это не работает.

    error: function (xhr) {

    var arr = [ "efirst", "esecond", "civil_no"];

$.each(xhr.responseJSON.errors, function(key,value,i) {

if(xhr.responseJSON.errors=arr[i]){

     $( "input[name=" arr[i]]).removeClass('border border-dark');
     $( "input[name=" arr[i] ).addClass('errorClass');

     return key<1;
}
 });
    },

console.log(ключ);// возвращает efirst, esecond, civil_no

Ответы [ 3 ]

2 голосов
/ 04 ноября 2019

Еще один способ взглянуть на это - перебрать массив имен полей и посмотреть, существует ли это свойство в объекте ошибок.

var arr = ["efirst", "esecond", "civil_no"];

$.each(arr, function(i, name) {
  if (xhr.responseJSON.errors.hasOwnProperty(name)) {
    $("input[name='" + name + "']").addClass('errorClass').removeClass('border border-dark');      
  }
});
1 голос
/ 04 ноября 2019

Вы можете использовать функцию "some", если хотите сравнить логический результат сравнения массива.

Также вы можете использовать backtick для удобства чтения.

var arr = [ "efirst", "esecond", "civil_no"];

$.each(xhr.responseJSON.errors, function(key, value) {
    if(arr.some(val => val === key)){
       $( `input[name=${key}]`).removeClass('border border-dark');
       $( `input[name=${key}]` ).addClass('errorClass');
    }
 });

Считать литералы шаблона здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

1 голос
/ 04 ноября 2019

Измените "если" на

//if key is an element of arr
if (arr.indexOf(key) !== -1) {...}

//using es6 syntax
if (arr.includes(key)) {...}

И двойная ]] без конечной кавычки в $( "input[name=" arr[i]]), вероятно, является опечаткой.

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