Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2010, 22:07
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Функция для работы с формой
Попытался написать функцию по аналогиям, которые наскрёб в рамках данного форума. Но что-то не работает функция. Безнадёжна ли данная функция или её можно исправить?
<script language='Javascript'>
function change(x,y)
{
	var form = document.getElementsByName('add_form');
	var radiobox = form.getElementsByName('edit');
	var field_for_change = form.getElementsByName('id');
	var button=form.getElementsByName('addit');
	var act='index.php?submenu='+x+'&action=';

	if(radiobox.name == y)
	{
		form.action=act+'1';
		field_for_change.type='text';
		field_for_change.value='';
		button.value='Добавить';
	}
	else
	{
		form.action=act+'2';
		field_for_change.type='text';
		field_for_change.value=radiobox.id;
		button.value='Изменить';
	}
	
}
</script>


<BODY>
<FORM METHOD='POST' ACTION='index.html?submenu=1' NAME='add_form'>
<INPUT TYPE='hidden' NAME='id' VALUE=''/>
<INPUT TYPE='text' NAME='name' VALUE='' size='20'/>
<BUTTON NAME='addit'>Добавить</BUTTON>
<table border='1'>
<tr bgcolor='#DDDDDD'>
	<td>Заголовок</td>
	<td><INPUT TYPE='radio' name='edit' id='text' OnClick=\"change('wow',this.id)\" checked></td>
</tr>
<tr>
	<td>Текст1</td>
	<td><INPUT TYPE='radio' name='edit' id='1'OnClick=\"change('wow','text')\"></td>
</tr>
<tr>
	<td>Текст2</td>
	<td><INPUT TYPE='radio' name='edit' id='2' OnClick=\"change('wow','text')\"></td>
</tr>
</table>
</FORM>
</BODY>
</HTML>

Последний раз редактировалось HedgehogNSK, 13.06.2010 в 22:20.
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2010, 22:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от HedgehogNSK
GetElementByName
Нет такого метода. В JavaScript вообще нет ни одного метода, имя которого начинается с заглавной буквы. Есть getElementsByName, обратите внимание на s в слове elements.
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2010, 22:20
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Упс.=) Ну простите начинающего javascript'ера. Подправил первый пост. Спасибо за ценные сведенья. Функция не работает всё равно. Продолжаем искать ошибки.
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2010, 22:52
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Не обратили внимание на s.
Ответить с цитированием
  #5 (permalink)  
Старый 13.06.2010, 23:10
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

Ну я понял что "s", я добавил. Я понимаю что возвращает он массив результатов. Но не понятно, как можно обратиться к нужному мне элементу массива:
1. Если это add_form, button, field_for_change если каждый из name'ов представлен в единственном экзмепляре на весь документ?
2. Если это edit у которого разные id. Как мне получить id из которого я вызвал эту функцию?
Ответить с цитированием
  #6 (permalink)  
Старый 14.06.2010, 08:55
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Цитата:
1. Если это add_form, button, field_for_change если каждый из name'ов представлен в единственном экзмепляре на весь документ?
getElementsByName(name)[0];


Цитата:
2. Если это edit у которого разные id. Как мне получить id из которого я вызвал эту функцию?
function change(x,y,z) { … } // в переменную z будет передаваться this


<input onclick="change(x, y, this);" …
Ответить с цитированием
  #7 (permalink)  
Старый 14.06.2010, 14:22
Интересующийся
Отправить личное сообщение для HedgehogNSK Посмотреть профиль Найти все сообщения от HedgehogNSK
 
Регистрация: 08.06.2010
Сообщений: 10

function change(x,y,z)
{
	var form = document.getElementsByName('add_form')[0];
	var field_for_change = document.getElementsByName('id')[0];
	var button=document.getElementsByName('addit')[0];
	var act='index.php?submenu='+x+'&action=';
	if(z.id == y)
	{
		form.action=act+'1';
		field_for_change.value='';
		button.value='Äîáàâèòü';
	}
	else
	{
		form.action=act+'2';
		field_for_change.value=z.id;
		button.value='Èçìåíèòü';
	}
	
}


Cпасибо. Получилась вот такая незатейливая функция.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Универсальная функция для формы Nightmare Общие вопросы Javascript 5 16.04.2010 18:42
JS-скрипт для вывода результата работы PHP-скрипта в заданном месте страницы Tycoon AJAX и COMET 0 06.11.2009 10:18
Модуль для работы с модулями JSprog Ваши сайты и скрипты 29 02.09.2009 13:31
Переодическое обновление значений для графика, функция для обновления значений yupa87 Общие вопросы Javascript 0 09.07.2009 14:48
Script для автоматизации работы с браузером ksa791 Общие вопросы Javascript 6 02.04.2009 14:30