JavaScript достъп до елемент на форма

4 отговора 225 прегледа
#1

JavaScript достъп до елемент на форма

Здравейте,
имам малък но досаден проблем с JavaScripta:
в кода на страницата имам форма
в която имам инпут полета именувани name="propertyName[0]",name="propertyName[1]",...

в една функция трябва да обходя тези полета, но нещо не се получава:

document.forms[0].propertyName[0] e 'undefined', заради "[" и "]" в името.

Има ли начин да се достигне до тези полета без да се преименуват?????

Отговор
в отговор на ГoлямЧoвek #2

Re: JavaScript достъп до елемент на форма

И какво точно трябва да им обходиш?? Дай да видим таз финкция. Не е толкоз тайна, нали?

Отговор
в отговор на ГoлямЧoвek #3

Re: JavaScript достъп до елемент на форма



/***********************************
Simply iterate Form.elements[]
colection.
Enjoy!
***********************************/
function iterateFormItems(formObj)
{
// May be this is not Form object . We will
// check ..
if(formObj.tagName != "FORM") return;
for(j=0;j<formObj.length;j++)
formObj.elements[j].name+="somenew";
}






Отговор
в отговор на ГoлямЧoвek #4

Чрез...

...

document.forms[index]/form name.elements[index]

или в твоя случай, за name="propertyName[0]" (ако приемем че той е N-тия елемент на формата) това би било

document.forms[0].elements[N-1]

Така както си го написал

document.forms[0].propertyName[0]

браузъра си мисли че

1. или имаш втора форма propertyName която е подформа на първата т.е.

<form name="The_name_of_the_first_form">
<form name="propertyName">
<input name="The_name_of_the_first_input_in _the_second_form">
</form>
</form>

2. или че във формата имаш radio button с име propertyName

<form name="The_name_of_the_form">
<input type="radio" name="propertyName" value="some value 1" />
<input type="radio" name="propertyName" value="some value 2" />
<input type="radio" name="propertyName" value="some value 3" />
</form>

и тъй като не може да намери нито едното нито другото и затова ти съобщава "document.forms[0].propertyName[0] is undefined".

Редактирано от Бopиc на

Отговор
в отговор на Бopиc #5

10ь

Мерси за отговорите.
Реши се проблема чрез: document.forms.myForm.elements['somePropertyName[0]'];


Отговор