Динамически устанавливать входные значения в HTML с неспецифическими именами

#php #javascript #jquery #html

#php #javascript #jquery #HTML

Вопрос:

Долгое время скрывался, впервые опубликовал.

У меня есть страница, которая может динамически (с помощью Javascript / jQuery) добавлять входные данные пары ключ => значение в форму. Эти поля должны быть возвращены в PHP в виде массива для обработки, поэтому все ключи называются «complete_fields[]», а все значения называются «complete_values[]». Теперь вот моя проблема. Если я заполняю некоторые входные данные, а затем хочу добавить другую пару ключ => значение, я могу нажать на кнопку, и Javascript совершит свое волшебство. Однако, поскольку часть HTML «value =» не заполнена, входные данные, которые я уже заполнил, стираются Javascript. Итак, мой вопрос заключается в следующем: Как я могу динамически устанавливать значение HTML для ввода с помощью JS, даже если все входные данные называются одинаково? Если это невозможно, как я могу добавить в конец div, не удаляя весь остальной HTML?

Вот код ввода добавления Javascript:

 function addCompleteField() {
    var oldhtml = $("#complete_fields").html();
    var newrow = '<tr><td><input type="text" name="complete_fields[]" > => <input type="text" name="complete_values[]" ></td></tr>';
    $("#complete_fields").html(oldhtml newrow);
}
  

Ответ №1:

Вместо того, чтобы возиться с HTML, просто клонируйте элементы, используя clone метод jQuery:

 function addCompleteField() {
    var table = $('#complete_fields'),
        lastRow = table.find('tr').last(),
        newRow = lastRow.clone(true);

    newRow.find('input').val(''); // blank the new row's input elements
    newRow.appendTo(table);
}