The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
почему не работает, !*! mishgan, 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>
Почему у меня это не работает ?

  • почему не работает, !*! XAnder, 08:42 , 09-Июн-06 (1)
    И не должно работать. Если хочешь достучаться до элемента формы, имеющего имя 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. Там автор достаточно доходчиво объясняет достаточно сложные вещи.

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

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

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

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

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

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

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

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




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

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