@maiskiykot
Free coder

Как изменить значения полей клонированного содержания?

Понадобилось быстро клонировать строку таблицы, содержащую поля формы. Естественно, у этих полей есть name и value. Как сделать изменение name на что-то типа name+1 и value на value+1. А ещё произвести полный пересчет элементов, чтобы не нарушалась нумерация элементов. Это потому, что каждый новый элемент тоже может быть клонирован, чтобы вставить строку в нужное место.

Пока взял за основу следующий код:
function add(){
 $("table").append($("table")
 .find("#gonnaclone").clone().removeAttr("id")
 .find(".input").val($(".input").val() + 1).end());
}

var count_id = 0
function cloneRow() {
       count_id++;
       var row = document.getElementById("gonnaclone"); 
       var table = document.getElementById("table_texts");  

       var clone = row.cloneNode(true); // copy children too
       clone.id = "gonna_"+count_id; // change id or other attributes/contents
       table.appendChild(clone); // add new row to end of table
}
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Absolute138
в name и value - число:
function cloneAndAdd(){
  var t = $('#table_texts');
  var cloneLastRow = t.find('tr:last').clone();
  cloneLastRow.find('[name],[value]').each(function(){
    var n = ~~this.name || 0;
    var v = ~~this.value || 0;
    this.name = ++n;
    this.value = ++v;
  });
  cloneLastRow.attr('id', 'gonna_'+(t.find('tr').length+1) );
  t.append(cloneLastRow);
}

в name и value - строка:
function cloneAndAdd(){
  var t = $('#table_texts');
  var cloneLastRow = t.find('tr:last').clone();
  cloneLastRow.find('[name],[value]').each(function(){
     this.value += '1';
     this.name += '1';
  });
  cloneLastRow.attr('id', 'gonna_'+(t.find('tr').length+1) );
  t.append(cloneLastRow);
}
Ответ написан
Ваш ответ на вопрос

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

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