Передача jq объекта в функцию

311
01 ноября 2017, 02:10

Не работает функция setError. вызывается из функции getFormArray($form) - $form форма где происходит поиск input. Ошибка: TypeError: $input.addClass is not a function.

function setError($input) {
    /*var $par = $input.parents('.form-group');
    $par.addClass('has-error');*/
    $input.addClass('has-error');
}
function getFormArray($form) {
  // соберет объет вида {name: value, name: value}
  var formData = {};
  $form.find(':input').each(function() {
    value = $.trim(this.value);
    if (value.length == 0) {
        setError(this);
        throw new NoValue();
    } else
        formData[this.name] = value;
  });
  return formData;
}
Answer 1

Вы передаете в setError не объект-обертку jQuery, а DOM-элемент. Надо:

setError($(this));
Answer 2

this - это в данном случае DOM объект. Поэтому передавать нужно $(this):

setError($(this));
READ ALSO
Bootstrap изменение размера элемента

Bootstrap изменение размера элемента

На страницах при выборе различных режимов появляются блоки с содержимымК примеру, один выглядит следующим образом:

360
как сверстать радио на сайте?

как сверстать радио на сайте?

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

342
JS - Получить значение из select

JS - Получить значение из select

На сайте есть несколько select, которые выводятся в цикле:

371
При нажатии на submit выдает ошибку

При нажатии на submit выдает ошибку

Есть поле, которое я заполняю и при нажатии на submit выдает ошибку:

329