Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   массивы getElementById в IE (https://javascript.ru/forum/css-html-internet-explorer/16907-massivy-getelementbyid-v-ie.html)

pharrell 27.04.2011 22:37

массивы 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'] ) для последующей отправки по аякс

melky 27.04.2011 23:40

Цитата:

Сообщение от pharrell (Сообщение 102410)

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)



только в ИЕ не работает, говорите? :blink:

рони 27.04.2011 23:53

Цитата:

Сообщение от 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;
}

pharrell 29.04.2011 20:48

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


Часовой пояс GMT +3, время: 11:51.