我编写了一个动态添加表单元素的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__"]
。
答案 0 :(得分:0)
尝试获取此类字段集
var fieldSet = document.getElementsByName('field__collection__')[0];
然后fieldSet中名为“X”的元素将是:
var nameOfxInFieldSet = fieldSet.getElemenetsByName('X')