Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2018, 19:05   #1
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию Массив в javascript

Добрый вечер! Подскажите, пожалуйста,в чем ошибка? не заполняется массив. можно ли считать в двумерный массив значения у <input>, кот находится внутри <table> и <tr> если задать им атрибут name?
Код:
<td className="tdInput"><input type=date name="idArr" style="background-color:#EEE8AA;"></td>
		<td className="tdInput"><input type=date name="idArr" style="background-color:#EEE8AA;"></td>
		<td className="tdInput"><input type=text name="idArr" style="background-color:#EEE8AA;font-weight:bold;"></td>
а в js-коде в функции заполнить массив

Код:
    var el = document.getElementsByName("idArr");  
    var arr = [], i, j;

    for (var i = 0; i < length.el; i++) {
        arr[i] = new Array();
        for (var j = 0; j < 3; j++) {
            arr[i][j] = el[i];
           
        }
    }
    return (arr);
Массив не заполняется. Двумерный, т.к. выше есть еще input добавленные динамически с таким же name

Последний раз редактировалось Вадим Мошев; 24.10.2018 в 23:32.
cherry25 вне форума Ответить с цитированием
Старый 26.10.2018, 07:02   #2
Ottava
Форумчанин
 
Регистрация: 05.09.2017
Сообщений: 157
По умолчанию

Используйте явную нотацию массива в name:
Код:
<input type=date name="idArr[]"
Несколько элементов формы с одинаковым name= приведут к коллизии в namespace формы, и форма отправит только последний из них.

Яваскрипт HTML5 браузера по document.getElementsByName(nameValu e) должен вернуть массив элементов с одинаковым name=.
В старых браузерах возможны коллизии, там атрибут name= считалось эквивалентом id= и попадало в общий namespace. Потому, что name= наряду с id= использовалось для локальных ссылок-якорей вида
Код:
<a name='scroll_to_me'></a>
для прокрутки страниц по ссылке вида <a href="#scroll_to_me", поэтому должно было быть уникальным.

Надёжнее вместо name= использовать любой другой атрибут (class='', data=''), html5 позволяет создавать собственные атрибуты. А CSS-селекторами или яваскриптом можно выбирать элементы с любым атрибутом. Или использовать нотацию массива [], html-формы работают именной с ней.
Безопасность с Content Security Policy

Последний раз редактировалось Ottava; 26.10.2018 в 07:26.
Ottava вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значения ip адресов в массив - JavaScript swaroff JavaScript, Ajax 1 12.04.2018 08:20
Написать еще 3 метода класса массив для работы с массивом. Javascript hunter24 Помощь студентам 0 02.04.2018 21:16
[Javascript] Массив кратных С. Rphoenix Помощь студентам 0 22.11.2015 10:02
Двумерный массив в Javascript, HTML nastjamihneva Помощь студентам 1 29.03.2014 13:30
JavaScript проблема с добавлением элементов в массив Jevgenia Помощь студентам 0 12.10.2011 23:09