H
Holger Dee Assuran
Доброго времени суток всем.
Есть у меня одна задачка - форма изначально содержит три текстовых поля в одну строку и ссылку "еще". При клике на "еще" нужно добавить еще одну строку с тремя полями и ссылкой "убрать". При клике на "убрать" в одной из строк эта строка должна быть убрана. Всего строк - неограниченное количество. В общем решение я нашел - довольно распространенное в сети:
И все вроде хорошо, но есть одно НО - при добавлении или удалении строк, данные введенные в поля формы пропадают, а нужно что-бы оставались. Подскажите как это сделать?
Есть у меня одна задачка - форма изначально содержит три текстовых поля в одну строку и ссылку "еще". При клике на "еще" нужно добавить еще одну строку с тремя полями и ссылкой "убрать". При клике на "убрать" в одной из строк эта строка должна быть убрана. Всего строк - неограниченное количество. В общем решение я нашел - довольно распространенное в сети:
Код:
<script>
function addLine()
{
c=++document.getElementById('count').value; // увеличиваем счётчик строк
s=document.getElementById('friends').innerHTML; // получаем HTML-код таблицы
s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
re=/(.*)(<tr id=.*>)(<\/table>)/gi;
// это регулярное выражение позволяет выделить последнюю строку таблицы
s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
// заменяем все цифры к квадратных скобках
s2=s1.replace(/\[\d+\]/gi,'['+c+']');
// на номер новой строки
s2=s2.replace(/(rmLine\()(\d+\))/gi,'$1'+c+')');
// заменяем аргумент функции rmline на номер новой строки
s=s.replace(re,'$1$2'+s2+'$3');
// создаём HTML-код с добавленным кодом новой строки
document.getElementById('friends').innerHTML=s;
// возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке
}
function rmLine(q)
{
if (q!=0){
s=document.getElementById('friends').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?newLine"? item="?\\['+q+'.*?<\\/tr>','gi');
// это регулярное выражение позволяет выделить строку таблицы с заданным номером
s=s.replace(re,'');
// заменяем её на пустое место
document.getElementById('friends').innerHTML=s;
}
return false;
}
</script>
<form action='#' method='post'>
<span id='friends'>
<table border=1 width='100%'>
<tr><th>ФИО</th><th>E-mail</th><th>Город</th><th><a href='#' onclick='return addLine();'>еще</a></th></tr>
<tr id='newLine' item='[0]'>
<td><input type='text' name='fr_fio[0]'></td>
<td><input type='text' name='fr_email[0]'></td>
<td><input type='text' name='fr_city[0]'></td>
<td><a href='#' onclick='return rmLine(0);'>удалить</a></td>
</tr>
</table>
<input type='hidden' name='count' id='count' value='0'>
</span>
</form>