The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"почему не работает"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"почему не работает"  
Сообщение от mishgan (ok) on 08-Июн-06, 18:47 
<form method="post"  name="sends">
                <INPUT type=text name="text[20]" value=""
                onkeypress="this.form.text[20].value=bm(20,20);"
                onChange="this.form.text[20].value=bm(20,20);"
                onFocus="this.form.text[20].value=bm(20,20);"
                onBlur="this.form.text[20].value=bm(20,20);"
                onSelect="this.form.text[20].value=bm(20,20);"
                onMouseOut="this.form.text[20].value=bm(20,20);"
                onMouseMove="this.form.text[20].value=bm(20,20);"
                onClick="this.form.text[20].value=bm(20,20);"
                >
</form>

<script language=JavaScript>
function bm(nzn , nomer){
zap=  document.sends.text[nomer].value;
if   (nzn > zap)  return zap;
else {return nzn;}
}
</script>
Почему у меня это не работает ?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "почему не работает"  
Сообщение от XAnder (ok) on 09-Июн-06, 08:42 
И не должно работать. Если хочешь достучаться до элемента формы, имеющего имя text[20], то писать нужно буквально так:

this.form.elements["text[20]"].value

или так:

this.form["text[20]"].value

а такая запись:

this.form.text[20].value

означает обращение к 20-му элементу массива this.form.text, которого в природе не существует.

Рекомендую почитать http://dklab.ru/chicken/nablas/ особенно 38 и 39. Там автор достаточно доходчиво объясняет достаточно сложные вещи.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "почему не работает"  
Сообщение от mishgan (ok) on 09-Июн-06, 18:17 
>И не должно работать. Если хочешь достучаться до элемента формы, имеющего имя
>text[20], то писать нужно буквально так:
>
>this.form.elements["text[20]"].value

Спасибо. все работает

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "почему не работает"  
Сообщение от SoD (??) on 09-Июн-06, 23:45 
>>И не должно работать. Если хочешь достучаться до элемента формы, имеющего имя
>>text[20], то писать нужно буквально так:
>>
>>this.form.elements["text[20]"].value
>
>Спасибо. все работает

Правильнее использовать getElementById('id элемента ');

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "почему не работает"  
Сообщение от XAnder (ok) on 13-Июн-06, 08:37 
>Правильнее использовать getElementById('id элемента ');

Не сказал бы, что это правильнее. Точнее, в большинстве случаев так делать или некрасиво, или вообще невозможно.

Во-первых, метод getElementById есть только у объекта document, то есть при таком подходе приходится всегда работать с глобальным объектом, даже если текущая задача очень локальная (как в обсуждаемом примере).

Во-вторых, id может быть далеко не у каждого элемента, а принудительная их расстановка сильно загромождает код, и в общем случае это задача нетривиальная, т. к. все id находятся в глобальной области видимости и нужно следить за их уникальностью. А атрибуты name элементов формы локальны по отношению к данной форме - их использование хорошо укладывается в идеологию структурного программирования.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру