Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Динамические элементы формы
 
 автор: shest   (13.01.2007 в 15:16)   письмо автору
 
 

Здравствуйте. Подскажите, как в JavaScript обратится к элементу формы,
если элементы загружаются динамически и имеют имена txt[0] txt[1]...txt[n]

Функция


 <script language='JavaScript1.1' type='text/javascript'>
<!--

 function tag(i, text1, text2)
  {

     if ((document.selection))
     {
       document.frm.txt[0].focus();
       document.frm.document.selection.createRange().text = text1+document.frm.document.selection.createRange().text+text2;

     } else document.frm.txt[0].value += text1+text2;

  }

//-->
</script>


php загружает текстовое поле и элемент рядом с ним. Елемент с событием onclick, где в функцию передаются
переменная $i- порядковый номер поля и два тега. В общем функция не воспринимает имена полей в виде txt[n]

<?php
  
for ($i=0$i<5$i++)echo "<input name=txt[$i] type='text' >&nbsp;
  <a href=# onClick=\"tag(
$i,'<i>', '</i>');\">
 <font color=#808080><b>I</b></font></a><br>"
;
?>


В общем функция не воспринимает имена полей в виде txt[n]

   
 
 автор: RMW   (13.01.2007 в 21:48)   письмо автору
 
   для: shest   (13.01.2007 в 15:16)
 

document.frm.elements[0] - обращение к элементу
по порядковому номеру.
Или создавайте JS массив из нужных полей.

window.onload = function()
{
  var fel = document.frm.elements;
  document.frm.txt = [];
  for(var i=0;i<fel.length;i++)
  {
    var el = fel[i];
    if(el.type == 'text' && /txt\[/.test(el.name))document.frm.txt.push(el);
  }

   
 
 автор: 12345   (14.01.2007 в 00:09)   письмо автору
 
   для: RMW   (13.01.2007 в 21:48)
 

Это не называется динамически для клиента, динамически - когда через JS создаётся.

По теме - обращаются к полям с такими именами через

document.getElementsByTagName('...[2]')[0] (ноль в конце важен), или
document.frm['...[2]']

   
 
 автор: Shest   (14.01.2007 в 01:44)   письмо автору
 
   для: 12345   (14.01.2007 в 00:09)
 

Большое спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования