[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление и удаление форм
vertraut
Есть страница, на которой нужно ввести имена и emailы людей, которым отправиться письмо с подстановкой их имени.
Нужно реализовать добавление/удаление форм на станице, чтоб человек мог указать необходимое количество адресатов!
(при нажатии на кнопку "+" - форма добавлялась, при нажатии на кнопку "-" - форма убиралась.



Спустя 2 минуты, 35 секунд (20.12.2009 - 22:14) Romms написал(а):
первое не форм а полей...
а второе щас напишу маленький скриптик....

Спустя 6 минут, 55 секунд (20.12.2009 - 22:21) sergeiss написал(а):
Цитата (vertraut @ 20.12.2009 - 23:11)
при нажатии на кнопку "+" - форма добавлялась, при нажатии на кнопку "-" - форма убиралась

Если кратко - то надо менять свойство display в стилях для формы или для контейнера, в котором она находится.
display:block - показать
display:none - скрыть

Спустя 3 минуты (20.12.2009 - 22:24) Romms написал(а):
Цитата
Если кратко - то надо менять свойство display в стилях для формы или для контейнера, в котором она находится.
display:block - показать
display:none - скрыть

можно и попроще... щас пишу, терпения...

Спустя 29 минут, 42 секунды (20.12.2009 - 22:54) Romms написал(а):
Вот... правда он неубтрает sad.gif запарился никак немогу придумать ка "убирать"
<script>
var nomber=3;
var nomberMax=50;
var nomberMin=1;


function add_email(asd){
if (nomber<=nomberMax)
{
nomber++;
document.getElementById("emails").innerHTML+='<br><input type="text" name="e_mail[]" id="email'+nomber+'">';
}
}


</script>


<
span id="emails">
<
br><input type="text" name="e_mail[]" id="email1">
<
br><input type="text" name="e_mail[]" id="email2">
<
br><input type="text" name="e_mail[]" id="email3">
</
span>

<
button onclick="add_email('emails');"> + </button>

Спустя 2 минуты, 35 секунд (20.12.2009 - 22:56) vertraut написал(а):
О, спс, как его поставить?

Спустя 2 минуты, 28 секунд (20.12.2009 - 22:59) vertraut написал(а):
При нажатии на кнопочку "+" он добавляет, и сразу отправляет данные на обработчик

Спустя 3 минуты, 16 секунд (20.12.2009 - 23:02) sergeiss написал(а):
Ну, если "на лету" создавать и удалять... Я же говорил только о показе или скрытии уже заложенных в форме полей...
Тогда, наверное, надо использовать appendchild() и removechild().

Спустя 2 минуты, 9 секунд (20.12.2009 - 23:04) Romms написал(а):
Цитата
При нажатии на кнопочку "+" он добавляет, и сразу отправляет данные на обработчик

нет... он просто додает тестовое поле
Цитата
О, спс, как его поставить?

Просто копируеш скрипт в <head> а
<span id="emails">
<br><input
type="text" name="e_mail[]" id="email1">
<br><input
type="text" name="e_mail[]" id="email2">
<br><input
type="text" name="e_mail[]" id="email3">
</span>
<button
onclick="add_email('emails');"> + </button>

Вставляешь куда хочь!

Спустя 3 минуты, 32 секунды (20.12.2009 - 23:08) Romms написал(а):
Цитата
Ну, если "на лету" создавать и удалять... Я же говорил только о показе или скрытии уже заложенных в форме полей...
Тогда, наверное, надо использовать appendchild() и removechild().

Я хотел сделать так:
после нажатия на кнопочку "-"
document.getElementById("emails").innerHTML=document.getElementById("emails").innerHTML.replace (/<br><input type="text" name="e_mail[]" id="email3">/g, '');

но почемуто не работает...

Спустя 12 минут, 14 секунд (20.12.2009 - 23:20) vertraut написал(а):
Нет, он отправляет данные на файл обработчик
http://onlinemovement.ru/recomend/index.php

Спустя 18 минут, 48 секунд (20.12.2009 - 23:39) Romms написал(а):
странно... даже незнаю почему... у меня все хорошо работало! Попробуй убрать функцию... если и тогда отправит, тогда я незнаю...

Спустя 8 минут, 34 секунды (20.12.2009 - 23:47) vertraut написал(а):
Убрал функцию, теперь просто перекидует на обработчик! без добавления поля

Спустя 3 минуты, 58 секунд (20.12.2009 - 23:51) vertraut написал(а):
на том сайте был вот такой скрипт
<script type="text/javascript">
var rows=5;
var next_id=6;
window.addEvent('domready', function(){
$('add_row').addEvent('click', function(e) {
e = new Event(e).stop();
var erows = $('erows');
var el = new Element('tr', {'id': 'u_'+next_id});
var td1 = new Element('td').setHTML('<input type="text" name="u_name[]"/>').injectInside(el);
var td2 = new Element('td').setHTML('<input type="text" name="u_mail[]"/>').injectAfter(td1);
var td3 = new Element('td').setHTML('<input type="button" value="-" onClick="del_row('+next_id+', event)" class="hand" title="Удалить получателя" />').injectAfter(td2);
el.injectInside(erows);
next_id++;
rows++;
});
$('sendForm').addEvent('submit', function(e) {
/**
* Prevent the submit event
*/

new Event(e).stop();
$('act').value='send';
/**
* This empties the log and shows the spinning indicator
*/

var log = $('log_res').empty().addClass('ajax-loading');
$('submitter1').disabled=true;
/**
* send takes care of encoding and returns the Ajax instance.
* onComplete removes the spinner from the log.
*/

this.send({
update: log,
evalScripts: true,
onComplete: function() {
log.removeClass('ajax-loading');
}
}
);
});

})

function del_row(id, e)
{
e = new Event(e).stop();
$('u_'+id).remove();
rows--;
}
</script>

Спустя 3 минуты, 56 секунд (20.12.2009 - 23:55) vertraut написал(а):
Минимально можно оставить три поля!

Спустя 1 час, 47 минут, 59 секунд (21.12.2009 - 01:43) qpayct написал(а):
а не лучше один стринг со всеми именами/мэйлами через запятую?

Спустя 11 часов, 14 минут, 13 секунд (21.12.2009 - 12:57) vertraut написал(а):
Уже разобрался!!! Всем ОГРОМНОЕ спасибо!

Спустя 1 час, 12 минут, 15 секунд (21.12.2009 - 14:09) sergeiss написал(а):
vertraut - так ты напиши, что именно помогло, что именно сделал. Мало ли, кому еще поможет.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.