Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 24.10.2018, 20:05   #1
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 106
Репутация: 10
По умолчанию Массив в 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

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

Используйте явную нотацию массива в 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-формы работают именной с ней.

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


19:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru