@Caprikanec

Неадекватная работа блока input, как исправить?

Дело вот в чём. На сайте имеется несколько форм, в каждой есть повторяющиеся блоки input (с телефоном, именем) с одинаковыми атрибутами name (у имени - name, у телефона - phone), когда я вношу изменения в одно из полей, с помощью jquery, изменения происходят со всеми полями с тем же атрибутом name. Часть форм у меня во всплывающих окнах (display:none). При первом изменении всё проходит успешно, а вот при дальнейших начинается "магия": при очищении значения value одного из полей формы, в некоторых других формах это же поле остаётся неизменным, хотя панель разработчика показывает, что значение value пусто, а вот форма в окне браузера со мной не соглашается. Также бывает и наоборот: в окне браузера отображается значение placeholder-а, в то время как панель разработчика показывает что значение value не пустует! Уже не первый день ломаю над этим голову, но пока впустую, может кто подскажет в чём проблема?
Код:

$(document).on('focusout', 'input', function(){
var name = $(this).val();
$("input[name=name]").attr({"value":name});
});
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Так все input с одинаковым name будут принимать значение измененного:
$(document).on('focusout', 'input', function(){
  var name = $(this).attr('name');
  var value = $(this).val();

  $('input[name=' + name + ']').val(value);
});


Демо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@tyzberd
Вы не смотрите в инспекторе на атрибут value, используйте его только для установки начального значения при генерации страницы.
Для изменения используйте .val() для изменения значения у текстового поля и .prop() для чекбоксов.
Если у вас несколько одинаковых полей перебирайте их с помощью .each() и для каждого вызывайте val
Прочитайте тут api.jquery.com/prop пункт Attributes vs. Properties там есть строка The same is true for other dynamic attributes, such as selected and value.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы