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


Автор: GIK 19.10.2005, 09:37
Добрый день всем.
Что-то заинтересовал меня пост гостя Константина.
Хочу поменять имя формы одной функцией, а второй, когда уже имя изменилось,проверить смог или нет.
Код

<html>
<head>
<script language="javascript" type="text/javascript">
<!--
     function f1() 
 { document.getElementByTagName("name1")=name2; 
   
    
 }

  function f2() 
 { document.name2.elements[0].value="Получилось изменить имя формы"; 
    
    
 }
//-->
</script>
</head>
<body>
   <form name="name1">
     <input type="text" name="num1" size=24><br>
     <input type="text" name="num2" size=24><br>
   <input type="button" value="Поменять имя" onClick="f1()"><br>
   <input type="button" value="Проверить"  onClick="f2()"><br>
    </form>
</body>
</html> 

Автор: DEER 19.10.2005, 09:51
Вот!
Имя меняет, но
Код

document.name2.elements[0].value="Получилось изменить имя формы"; 

что то не работает
Код

     function f1()    
 { 

   document.getElementById("nm").name="name2";    
   
     
 }    
  function f2()    
 { 
  alert(document.getElementById("nm").name);     
  //document.name2.elements[0].value="Получилось изменить имя формы";    
     
     
 }    


Автор: GIK 19.10.2005, 10:09
В смысле не работает? У меня вроде заработало smile
Осталось изменить ID
Код

<html>
<head>
<script language="javascript" type="text/javascript">
<!--
      function f1()    
 { 

   document.getElementById("nm").name="name2";    
   
     
 }    
  function f2()    
 { 
  alert(document.getElementById("nm").name);     
  //document.name2.elements[0].value="Получилось изменить имя формы";    
     
     
 }    

//-->
</script>
</head>
<body>
   <form id="nm" name="name1">
     <input type="text" name="num1" size=24><br>
     <input type="text" name="num2" size=24><br>
   <input type="button" value="Поменять имя" onClick="f1()"><br>
   <input type="button" value="Проверить"  onClick="f2()"><br>
    </form>
</body>
</html> 

Автор: DEER 19.10.2005, 10:12
у меня
Код
document.name2.elements[0].value="Получилось изменить имя формы";
не работает smile

Автор: GIK 19.10.2005, 10:19
Теперь работает, поменял на Ебджект smile
а с document видимо какой то глюк???
Код

<html>
<head>
<script language="javascript" type="text/javascript">
<!--
      function f1()    
 { 

   document.getElementById("nm").name="name2";    
   
     
 }    
  function f2(ebj)    
 { 
  
 ebj.elements[0].value="Получилось изменить имя формы";    
     
     
 }    

//-->
</script>
</head>
<body>
   <form id="nm" name="name1">
     <input type="text" name="num1" size=50><br>
     <input type="text" name="num2" size=24><br>
   <input type="button" value="Поменять имя" onClick="f1()"><br>
   <input type="button" value="Проверить"  onClick="f2(this.form)"><br>
    </form>
</body>
</html> 

Добавлено @ 10:22
Но проблема не решилась???????????????????

Автор: DEER 19.10.2005, 10:25
Цитата(GIK @ 19.10.2005, 10:19)
а с document видимо какой то глюк???

Ага, я чтоб заработало из MSDN скопировал это слово

Автор: Aliance 20.10.2005, 00:08
1) В XHTML у тега form нет атрибута name
2) document.getElementByTagName("name1") - вернет тебе массив ссылок на теги <name1>

Автор: Zeroglif 20.10.2005, 01:14
Если кто-то знает по какой причине предложенная здесь схема (замена у формы "name", потом обращение к форме по новому "name") не работает в IE - просигнальте плиз, а то занесу в баги.

Спасибо.

Автор: Aliance 20.10.2005, 15:56
Видимо из-за этого самого…
Хотя какой именно код не работает? Я на него тщательнее погляжу.

Но вообще, у формц нет атрибута name, но есть свойство name (this.form.name)

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