如何浏览表单元素

时间:2011-12-14 15:28:17

标签: javascript forms internet-explorer-8 element

我编写了一个动态添加表单元素的webform。 我创建了许多字段集,然后当满足某些条件时, 我在我感兴趣的字段集中插入了一些选择框。

例如,我创建了如下字段集:

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)。 更具体地说,IE8中未定义form.elements["field__collection__"]

1 个答案:

答案 0 :(得分:0)

尝试获取此类字段集

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

然后fieldSet中名为“X”的元素将是:

var nameOfxInFieldSet = fieldSet.getElemenetsByName('X')