Для лучшего понимания того, что я хочу сделать, вот скриншотКлонирование Флажки с разными названиями
Я хочу, чтобы иметь возможность представить ли Флажки проверки или нет. Для этого я использовал трюк, чтобы иметь скрытые поля ввода, потому что в противном случае непроверенные поля не отправляются. Теперь я хочу сделать пару (один скрытый, один флажок) с тем же именем, но каждая пара имеет другое имя. Я пробовал совсем немного с javascript и jQuery, но не мог понять, как это сделать. Кнопка «+» предназначена для добавления дополнительных флажков, кнопка «-» предназначена для их повторного удаления.
<html>
<head>
<title>test</title>
<script type="text/javascript">
function clone(button, objid)
{
tmpvalue = document.test.elements['param[]'][1].value;
document.test.elements['param[]'][1].value = '';
var clone_me = document.getElementById(objid).firstChild.cloneNode(true);
button.parentNode.insertBefore(clone_me, button);
document.test.elements['param[]'][1].value = tmpvalue;
}
function remove_this(objLink)
{
objLink.parentNode.parentNode.parentNode.parentNode.parentNode.removeChild(objLink.parentNode.parentNode.parentNode.parentNode);
}
</script>
</head>
<body>
<form name="test" method="post" action="test2.php">
<input name="param[0]" value="0" type="hidden">
<div id="hidden" style="visibility:hidden; display:none">
<div id="table"><table>
<tr><td>
<input name="param[]" type='hidden' value="0">
Parameter: <input name="param[]" type="checkbox" value="1">
</td>
<td>
<span style="margin-left:2em;"></span><input value="-" onclick="javascript:remove_this(this)" type="button">
</td>
</tr>
</table></div>
</div>
<div>
<input style="margin-top:2em;" value="+" onclick="javascript:clone(this, 'table');" type="button">
<button type="submit" name="sent">Submit</button>
</div>
</form>
</body>
</html>
Так это было на самом деле неплохо иметь какой-то счетчик, как это:
<input name="param[i]" type='hidden' value="0">
Parameter: <input name="param[i]" type="checkbox" value="1">
Спасибо за вашу помощь!
Я не могу загрузить ваше изображение (моя сеть блокирует его), так что, в общем, когда вы хотите клонировать вещи, вы должны: 1) создать шаблон без идентификаторов типа ' 'в plain html, завернутый в элемент' display: none', а затем 2), используйте jQuery $ .clone() для создания копии, 3) имена/идентификаторы/метки обновления с функцией, которая также хранит счетчик. В этой скрипте есть какая-то логика: http://jsfiddle.net/briansol/5h4cM/1/ Затем 4) фактически добавьте клон в DOM – briansol