|
|
|
| Всем привет, подскажите простой скрипт для добавления полей, мне нужно чтобы три раза можно было добавить одинаковые поля, по типу:
нажал пользователь на +, в виде ссылки, появились доп поля,
поле 1 select | поле 2 select | поле 3 select
|
нажал второй раз на + еще такие же, третий, дальше ссылка на добавление еще полей исчезает, максимум 3..
и вот такое момент, в зависимости от первого селекта, количество полей, может изменятся на (один),
например:
поле 1 select (val=1) | поле 2 select | поле 3 select
|
поле 1 select (val=2) | поле 2 select | поле 3 select | поле 4 select
|
яву скрипт совсем не знаю, подскажите пожалуйста, спасибо. | |
|
|
|
|
|
|
|
для: *m*
(08.11.2011 в 11:34)
| | А я вот НЕ ЗНАЮ, как "подсказать" тому, кто яваскрипт "совсем не знает".
Если б вы хоть что-то знали, я бы дал вам ссылку на результаты здешнего поиска - ваша тема много-много раз здесь "перетиралась"
[поправлено модератором] | |
|
|
|
|
|
|
|
для: АЯС
(08.11.2011 в 15:54)
| | дайте ссылки пожалуйста, я попробую сам разобраться.
я думал это не сложный скрипт коих готовых полно, спасибо. | |
|
|
|
|
|
|
|
|
для: АЯС
(08.11.2011 в 21:50)
| | спасибо, но не подошло, мне нужна возможность добавления и удаления полей..
я вот нашел в сети такой скрипт, он в принципе рабочий, мне подходит, но нужно, его немного адаптировать. я подозреваю что ничего сложного, но мне без помощи, этого не сделать.. поможете?
нужно:
1) чтобы при выборе типа "детский" появлялось скрытое поле, для указания возраста, а в случае, "реб+реб" два поля, для указания возрастов.
примерно так:
// если "десткий"
1 селект 2селект 3 селект (был скрытым)
детский | 1 | 3 года
// если "реб+реб"
1 селект 2селект 3 селект (был скрытым) 4 селект (был скрытым)
реб+реб | 1 | 3 года | 4 года
|
2)сделать ограничение не больше трех таких доп полей.
и вот такой вопрос, можно ли изначально не показывать вообще доп поля? т.е сейчас, в данном случае показываются доп поля, а можно сделать так чтобы они начинали показываться, только в случае нажатия на ссылку "добавить" ? или при нажатии на какую нибудь другую ссылку, например "добавить еще варианты" .Тогда можно было бы раскоментировать строку
if (c==0) return false; else c--;
| , особеностью данного скрипта является тот факт, что если удалить последний элемент, то добавить вновь доп поля, без перезагрузки страницы будет нельзя..
вот скрипт:
<script>
var c=0; //счётчик количества строк
function addline()
{
c++; // увеличиваем счётчик строк
s=document.getElementById('table').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('table').innerHTML=s;
// возвращаем результат на место исходной таблицы
return false; // чтобы не происходил переход по ссылке
}
function rmline(q)
{
// if (c==0) return false; else c--;
// если раскомментировать предыдущую строчку, то последний (единственный)
// элемент удалить будет нельзя.
s=document.getElementById('table').innerHTML;
s=s.replace(/[\r\n]/g,'');
re=new RegExp('<tr id="?newline"? nomer="?\\['+q+'.*?<\\/tr>','gi');
// это регулярное выражение позволяет выделить строку таблицы с заданным номером
s=s.replace(re,'');
// заменяем её на пустое место
document.getElementById('table').innerHTML=s;
return false;
}
</script>
|
а так выглядит html
<form method="POST" >
<span id="table">
<table border=0 cellspacing=0 cellpadding=3>
<tr><td>Тип</td><td>Кол-во</td><td>
<a href="#" onclick="return addline();">добавить</a></td></tr>
<tr id="newline" nomer="[0]">
<td><select name="room[]">
<option value="0">отдельный</option>
<option value="1">детский</option>
<option value="2">реб+реб</option>
</select></td>
<td><select name="col[]">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select></td>
<td valign="top"><a href="#" onclick="return rmline(0);">удалить</td></tr></table>
</span>
<button type="submit" id="send">Отправить</button>
</form>
|
| |
|
|
|