Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.03.2009, 11:57
Аватар для deliro
Новичок на форуме
Отправить личное сообщение для deliro Посмотреть профиль Найти все сообщения от deliro
 
Регистрация: 22.03.2009
Сообщений: 4

Добавление полей к форме
Надо функцию, добавляющую поле к форме, заюзать в двух местах в одной форме. В смысле, есть два не зависящих друг от друга поля, которые будут дублироваться.

Это скриптик, который я нашла:
var c=0;

function rmline(q) {
  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;
}

function addline() {
  c++;
  s=document.getElementById('table').innerHTML;
  s=s.replace(/[\r\n]/g,'');
  re=/(.*)(<tr id=.*>)(<\/table>)/gi;
  re2=/\[\d+\]/gi;
  s1=s.replace(re,'$2');
  s2=s1.replace(re2,'['+c+']');
  s2=s2.replace(/(rmline\()(\d+\))/gi,'$1'+c+')');
  s=s.replace(re,'$1$2'+s2+'$3');
  document.getElementById('table').innerHTML=s;
  return false;
}


А так у меня выглядит кусочек, где он используется:
<span id="table">
  <table>
   <tr>
    <td>'.$text.'</td>
    <td><a href="#" onclick="return addline();">добавить</a></td>
   </tr>
   <tr id="newline" nomer="[0]">
     <td><input type="text" name="'.$fieldname.'[0]" size=24></td>
     <td valign="top"><a href="#" onclick="return rmline(0);">удалить</a></td>
   </tr>
  </table>
</span>
<input type="hidden" name="count" value="0">


Если я правильно понимаю (что не факт), надо, чтобы при тыке на "добавить" отправлялось еще какое-то значение (пусть fieldname), а в скрипте оно учитывалось и скрипт выполнялся именно в поле с этим значением...

В JavaScript не разбираюсь. Совсем

Вариант забить на это и поэтапно добавить сначала одно, потом другое, не рассматривается.
Вариант скопировать скрипт целиком и приткнуть в обоих местах с разным id рассматривается, но как-то это некрасиво, мне кажется, что по-другому должно быть :rolleyes:
Ответить с цитированием
  #2 (permalink)  
Старый 22.03.2009, 12:21
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

не проверял. но примерно будет выглядеть так:
function add_new_row() {
 var our_table = document.getElementById('table').getElementByTagName('table')[0];
 var allrows = our_table.rows.length; // вычислим количество строк в таблице
 our_table.insertRow(allrows); // добавляем строку в таблицу
 our_table.rows[allrows].insertCell(0); // добавляем ячейки 
 our_table.rows[allrows].insertCell(1);
 our_table.rows[allrows].cells[0].innerHTML = "some text or data"; // добавляем значения в ячейки
 our_table.rows[allrows].cells[1].innerHTML = "some text or data";
}

function deleteRow(r)
{
var i=r.parentNode.parentNode.rowIndex;
document.getElementById('table').getElementByTagName('table')[0].deleteRow(i);
}
Ответить с цитированием
  #3 (permalink)  
Старый 22.03.2009, 12:44
Аватар для deliro
Новичок на форуме
Отправить личное сообщение для deliro Посмотреть профиль Найти все сообщения от deliro
 
Регистрация: 22.03.2009
Сообщений: 4

А поточнее?..а то так у меня не работает, а языка не разумею *SORRY*
Кстати, тот-то вариант рабочий, но он срабатывал строго там, где функция в первый раз вызывается, а мне в двух местах нуна...
Ответить с цитированием
  #4 (permalink)  
Старый 22.03.2009, 12:54
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

извините, но мы тут помогаем разобраться если ваш скрипт не работает, или вы не знаете как сделать. вместо Вас писать или адаптировать скрипты никто не будет. Либо в раздел работа.
Ответить с цитированием
  #5 (permalink)  
Старый 22.03.2009, 12:58
Аватар для deliro
Новичок на форуме
Отправить личное сообщение для deliro Посмотреть профиль Найти все сообщения от deliro
 
Регистрация: 22.03.2009
Сообщений: 4

Извините )
Буду учиться
Ответить с цитированием
  #6 (permalink)  
Старый 22.03.2009, 14:08
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

deliro,
вот это правильный подход.
советую наведатся в раздел книги сайта
также советую прочитать весь цикл статей из одноименного раздела. там статьи есть как от начального уровеня, так и более глубокие. но хотя бы синтаксис перед их прочтением надо знать.
Ответить с цитированием
  #7 (permalink)  
Старый 22.03.2009, 15:00
Аватар для deliro
Новичок на форуме
Отправить личное сообщение для deliro Посмотреть профиль Найти все сообщения от deliro
 
Регистрация: 22.03.2009
Сообщений: 4

Хе, уже читаю.
Вопрос, правда, не по теме, и не знаю, может спрашивали где *делает глазищи виноватые-виноватые*:
В JavaScript можно как-нибудь посмотреть html-код, получившийся в результате действия?
Ответить с цитированием
  #8 (permalink)  
Старый 22.03.2009, 15:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Firebug: вкладка html;
WebDeveloperBar: View generated content.
Ну или банально в FF: CTRL+A, правая кнопка, исходный код выделенного фрагмента.

И еще куча способов
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление значения переменной в textarea IamSmorodin Общие вопросы Javascript 13 09.04.2009 10:59
Обращение к форме октрытого окна SparkDSD Events/DOM/Window 3 27.02.2009 14:02
автоматический вывод полей nastya Общие вопросы Javascript 5 10.02.2009 07:20
Добавление новых полей к форме. EZh Элементы интерфейса 7 14.06.2008 04:05
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14