SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием

Как регуляркой заменить значение атрибута переменной?

Всем привет.

Есть такое
<div class="form">
<div class="row">
<input required type="text"  name="ItemToOrders[0][Qty]"   class="img-fluid form-control form-control_asp"  >
<input required type="text"  name="ItemToOrders[0][Height]"   class="img-fluid form-control form-control_asp"  >
<input required type="text"  name="ItemToOrders[0][Width]"   class="img-fluid form-control form-control_asp"  >
</div>
</div>

Нужно чтоб при нажатии на кнопку блок с классом row клонировался, но заменялись цифры в атрибуте name, которые в [ ] на переменную. Переменная просто будет увеличивать число на +1. Она уже есть, осталось понять как ее вставлять.
Все колнирует и вставляет, но цифры не знаю как менять.
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
lidacriss
@lidacriss
wtf
let counter = 0;
let $form = $('div.form');
$form.on('click', 'input.clone-row', function(){
	let $self = $(this);
  let cloneRow = $self.parent().clone();
  counter++;
  cloneRow.find('input.form-control').each(function(i, input){
  	let $input = $(input);
    let inputName = $input.attr('name');
    let newName = inputName.replace(/(.*?\[)\d+(\].*)/i, '$1' + counter + '$2');
    $input.attr('name', newName);
    $input.val(newName); // это, конечно же, можно (нужно) убрать. здесь только для наглядности
  });
  $form.append(cloneRow);
});


https://jsfiddle.net/bj9280kz/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы