Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Элементы формы как массив 
:(
    Опции темы
barcelona
Дата 3.7.2008, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Здравствуйте!
У меня на форме поля следующего вида:

Код

<form name="mainforma" id="mainforma">
<input type="text" name="emparraycurrent_emp[1][2]">
<input type="text" name="emparraycurrent_emp[2][1]">
<input type="text" name="emparraycurrent_emp[3][2]">
...
<input type="button" value="Click" onClick="onlyView()">
</form>


Функция onlyView() должна с ними работать. То есть мне нужен не какой-то конкретный элемент, а ВЕСЬ массив полей. Для начала я пытаюсь хотя бы получить эти поля:

Код

function onlyView() {
    var array = new Array();
    array = document.mainforma["emparraycurrent_emp[][]"];
    alert(array.length);
}


Не получается! Что я делаю не так.
PM MAIL   Вверх
Grig
Дата 3.7.2008, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 2
Всего: 16



Код

var arr=document.mainforma.getElementsByTagName("INPUT");



--------------------
        
PM MAIL ICQ   Вверх
bars80080
Дата 3.7.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



ну или конкретней
Код

<form name="mainforma" id="mainforma">
<input type="text" name="emparraycurrent_emp[1][2]" />
<input type="text" name="emparraycurrent_emp[2][1]" />
<input type="text" name="emparraycurrent_emp[3][2]" />
...
<input type="button" value="Click" onClick="onlyView()" />
</form>
<script>
function onlyView() {
    var frm = document.getElementById('mainforma');
    var mv = new Array();
    ln = frm.getElementsByTagName('input').length;
    
    for(i = 0; i < ln; i++) {
        el = frm.getElementsByTagName('input')[i];
        if(el.name.indexOf('emparraycurrent_emp') != -1) { mv[i] = new Array(el.name, el.value); /*alert(mv[el.name]);*/ }
    }
}


Это сообщение отредактировал(а) bars80080 - 3.7.2008, 09:22
PM MAIL WWW   Вверх
Се ля ви
Дата 3.7.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Народ, зачем такие сложности?

Есть способ проще:
Код
var elements = document.forms['mainforma'].elements;
    for (var i = 0; i < elements.length; i++)
        alert(elements[i].value);


Просто туда попадут все поля этой формы - т.е. не только input`ы, но и select`ы с textarea`ми. Их, если нужно, можно откинуть, узнав по свойству elements[i].tagName имя тега. smile

Добавлено @ 10:52
Т.е. в твоём случае, если тебе необходим массив именно элементов input, которые начинаются с 'emparraycurrent_emp[':
Код
function onlyView() {
    var array = [],
        tempArray = document.forms['mainforma'].elements;
    for (var i = 0; i < tempArray; i++)
        if (tempArray[i].tagName.toLowerCase() == 'input'
            && tempArray[i].name.indexOf('emparraycurrent_emp[' != -1)

            array[array.length] = tempArray[i];

    alert(array.length);
}



--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
Ghirik
Дата 5.7.2008, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 13
Всего: 20



Если Вы владеете тем php-скриптом, который дает такие "emparraycurrent_emp[1][2]" имена полям формы, то лучше решать этот вопрос на уровне php.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.