Как перемещаться по элементам формы - PullRequest
0 голосов
/ 14 декабря 2011

Я написал веб-форму с динамически добавленными элементами формы.Я создаю несколько наборов полей, а затем, когда выполняются некоторые условия, я вставляю несколько полей выбора в интересующий меня набор полей.

Например, я создаю набор полей, например:

document.write('<fieldset name="field__collection__">') ;
                                document.write('<legend align="right" style="color:#FF0066"><code>COLLECTION</code></legend><br />') ;
                                document.write('</fieldset') ;

Затем, чтобы получить доступ к набору полей и создать поле выбора, я делаю:

var html = form.elements["field__collection__"].innerHTML ;
                                for( netelement in CUSTOM)
                                {
                                        html = html + '<fieldset><legend align="left" style="color:#888888"><code>'+ netelement +'</code></legend>'
                                        var x = "__collection__" +'###'+ netelement +'###' ;
                                        html = html + '<select name=\"'+ x +'\" multiple="true" size="5" onsubmit="document.getElementById(\'MAIN\').submit()">' ;
                                        for( collection in CUSTOM[netelement] )
                                                if( collection != "icollection" )
                                                        html = html + '<option>'+collection+'</option>' ;
                                        html = html + '</select>' ;
                                        html = html + '</fieldset>' ;
                                }
                                form.elements["field__collection__"].innerHTML = html ;

Проблема в том, что я могу получить доступ к набору полей, например: form.elements["field__collection__"], и это работает в Firefox, Safari, Opera,Chrome, он не работает на IE8 (и проблема не в innerHTML).Более конкретно, form.elements["field__collection__"] не определено в IE8.

1 Ответ

0 голосов
/ 14 декабря 2011

Попробуйте получить ваш набор полей вот так

var fieldSet = document.getElementsByName('field__collection__')[0];

И тогда элементы в fieldSet с именем 'X' будут иметь вид:

var nameOfxInFieldSet = fieldSet.getElemenetsByName('X')
...