Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2011, 22:37
Интересующийся
Отправить личное сообщение для pharrell Посмотреть профиль Найти все сообщения от pharrell
 
Регистрация: 27.04.2011
Сообщений: 20

массивы getElementById в IE
ребят подскажите почему в IE не работает данная функция ((
в других браузерах работает)

function formData(fid){
	var form=$(fid),name;
	var data={};
	for (var i in form.elements){
	name=form.elements[i].tagName;if(name=="TEXTAREA")
	 data[form.elements[i].id]=form.elements[i].value;
 }
	return data;
	}


Задача функции формировать обьект с именами равными id элемента ( например у input id="my" обьект будет obj['my'] ) для последующей отправки по аякс

Последний раз редактировалось pharrell, 29.04.2011 в 20:50.
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2011, 23:40
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от pharrell Посмотреть сообщение

function formData(fid){
	var form=*!*document.getElementById[fid]*/!*  ,  name;
	var data={};
	for (var i in form.elements)
	 data[form.elements[i].id]=form.elements[i].value;

если я не сошел с ума, то это не массив,а функция

вместо

document.getElementById[fid]

надо поставить

document.getElementById(fid)



только в ИЕ не работает, говорите?
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2011, 23:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от pharrell
for (var i in form.elements)
Вы так перебираите свойства хтмл-коллекции формы -- если вам нужны сами элементы делайте перебор по индексу ...
var l = form.elements.length;
for (var i=0; i<l; i++)  {
  if(form.elements[i].id) data[form.elements[i].id]=form.elements[i].value;
}
Ответить с цитированием
  #4 (permalink)  
Старый 29.04.2011, 20:48
Интересующийся
Отправить личное сообщение для pharrell Посмотреть профиль Найти все сообщения от pharrell
 
Регистрация: 27.04.2011
Сообщений: 20

#2 да работает во всех браузерах кроме ie ...и я не сказал то что это обьект , это функция, которая возвращает обьект
#3 спасибо , конечно, но этот обьект через ajax передается как данные и обрабатывается PHP , поэтому нужно чтобы имя элемента массива соответствовало id инпута или текстареи
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
input type='file' + getElementById vah-smile Элементы интерфейса 3 30.03.2011 06:24
метод getElementById() sc2r2bey AJAX и COMET 8 25.03.2011 15:25
Скрипт работает во всех браузерах кроме IE (getElementById) cmd Internet Explorer 9 19.03.2011 16:06
getElementById sc2r2bey AJAX и COMET 2 15.07.2009 14:05
Цикл по getElementById GogElf Общие вопросы Javascript 7 10.04.2009 19:12