Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > submit формы


Автор: Opik 20.6.2005, 13:57
Пытаюсь делать так:
Код

  var form = document.getElementById("gb_form_"+id);
               form.submit();

вылетает ошибка, как быть?

Автор: DEER 20.6.2005, 14:01
Код

   var act = document.forms["f1"];    
    act.submit();    

где f1 - это ID формы

Автор: sergejzr 20.6.2005, 14:09
Opik, ты всё правильно делаешь smile Код дай весь, с ХТМЛем.

DEER, я бы не советовал так пользоваться. По стандарту надо юзать getElementById. Тем более, что в скобках надо писать name формы.

Автор: Opik 20.6.2005, 14:13
<form action="admin.php?w=category" method="POST" id="gb_form_3">
onclick="showAddField(3)

Код

  <script type="text/javascript">
      function showAddField(id)
      {
          var el = document.getElementById("fld_add_"+id);
          if(el.style.display == 'none')
          {
               el.innerHTML = '<table width="100%">'+
               '<input type="hidden" name="subaction" value="new" />'+
               '<tr colspan="2" style="text-align: center; font: bold;">Добавление поля</tr>'+
               '<tr>'+
               '<td>Имя поля (только латиница)<br /></td>'+
               '<td><input type="text" name="name" />'+
               '</td>'+
               '</tr>'+
               '<tr>'+
               '<td>Тип поля</td>'+
               '<td>'+
                  '<select name="type">'+
                  '<option value="1">input</option>'+
                  '<option value="2">textarea</option>'+
                  '</select>'+
               '</td>'+
               '</tr>'+
               '</table>';
               el.style.display = '';
          }
          else
          {
               var form = document.getElementById("gb_form_"+id);
               form.submit();
          }
      }
  </script>

Автор: sergejzr 20.6.2005, 14:20
form закрывается?

Мне надо уезжать к сож... Вечером посмотрю. На первый взгляд всё ОК.

ещё левый вопрос... Зачем создаёшь каждый раз таблшицу, если она скрыта?

пиши
Код

el.style.display =  (el.style.display== 'none'? '': 'none')

Автор: Opik 20.6.2005, 14:26
sergej.z
скрыт слой, но таблицы там нет smile
Добавлено @ 14:26
Цитата
form закрывается?

да

Автор: DEER 20.6.2005, 14:34
Цитата(sergej @ 20.6.2005, 14:09)
DEER, я бы не советовал так пользоваться. По стандарту надо юзать getElementById. Тем более, что в скобках надо писать name формы.

http://forum.vingrad.ru/index.php?showtopic=50561&st=0&#entry395363

Меня этому тут научили smile

Автор: sergejzr 20.6.2005, 20:08
Сорри всё никак проверить не мог smile)
Всё работает вроде... Или ты мне мало кода дал smile
Короче вот:



Код:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
 <form action="admin.php?w=category" method="POST" id="gb_form_3">
</form>
<a href="javascript:showAddField(3);"> Click me!</a>
<div id="fld_add_3"></div>
    <script type="text/javascript">
      function showAddField(id)
      {
          var el = document.getElementById("fld_add_"+id);
          if(el.style.display == 'none')
          {
               el.innerHTML = '<table width="100%">'+
               '<input type="hidden" name="subaction" value="new" />'+
               '<tr colspan="2" style="text-align: center; font: bold;">Добавление поля</tr>'+
               '<tr>'+
               '<td>Имя поля (только латиница)<br /></td>'+
               '<td><input type="text" name="name" />'+
               '</td>'+
               '</tr>'+
               '<tr>'+
               '<td>Тип Ð¿Ð¾Ð»Ñ</td>'+
               '<td>'+
                  '<select name="type">'+
                  '<option value="1">input</option>'+
                  '<option value="2">textarea</option>'+
                  '</select>'+
               '</td>'+
               '</tr>'+
               '</table>';
               el.style.display = '';
          }
          else
          {
               var form = document.getElementById("gb_form_"+id);
               form.submit();
          }
      }
  </script>
</body>
</html>


Автор: Sardar 22.6.2005, 00:51
Opik у форм есть всего одна проблема: коллекция elements лежит выше, как свойства формы. Если у тебя есть элемент с именем submit, то метод submit не будет работать. Почему так, нужно спрашивать нетскеповцев(старых), может кофе перепили...

Убедись что внутри формы нет элемента с именем/ид = "submit". Можо ещё извратиться записав метод submit в какое нибудь другое свойство формы до того как будет прочитан парсером input:submit.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)