Javascript IE innerHTML的<select>

Xav*_*ias 4 html javascript forms internet-explorer innerhtml

我正在尝试根据前一个元素的值更改元素的innerHTML.

我有正确抓取当前值的JavaScript,一切正常在Firefox,Safari,Chrome和Opera中正常工作.IE是一种痛苦.

示例代码:

<form action="soap.php" method="post">
    <select name="circuitproduct" id="circuitproduct" onchange="bandwidthfunction();">
        <option>Dedicated Voice</option>
        <option>Frame Relay</option>
        <option>ATM</option>
        <option>Dedicated Internet</option>
        <option>IP Solutions Private Port</option>
        <option>IP Solutions Enhanced Port</option>
        <option>Private Line – Domestic</option>
        <option>Int’l Private Line</option>
        <option>Qwest Metro Private Line (QMPL)</option>
        <option>Qwest Metro Ethernet Private Line (QMEPL)</option>
    </select><br />
    <select name="term" id="term">
        <option value="1-Year">1-Year</option>
        <option value="2-Year">2-Year</option>
        <option value="3-Year">3-Year</option>
    </select>
    <select id="bandwidth">
    </select>
    <select id="sublooptype">
    </select>
</form>
Run Code Online (Sandbox Code Playgroud)

示例javascript:

function bandwidthfunction() {
var product = document.getElementById('circuitproduct').value;
    if (product == 'Dedicated Voice') {
        document.getElementById('bandwidth').innerHTML = ('<option value="DS-1">DS-1</option><option value="DS-3">DS-3</option><option value="OC-3">OC-3</option><option value="OC-12">OC-12</option>');
        document.getElementById('sublooptype').innerHTML = ('<option value="Special Access">Special Access</option><option>CO MtPt - Special Access</option><option>CPA Special Access</option>');
    }
    else if (product == 'Frame Relay') {
        document.getElementById('bandwidth').innerHTML = ('<option value="DS-1">DS-1</option><option value="DS-3">DS-3</option><option value="OC-3">OC-3</option><option value="OC-12">OC-12</option>');
        document.getElementById('sublooptype').innerHTML = ('<option value="Special Access">Special Access</option><option>CO MtPt - Special Access</option><option>CPA Special Access</option>');
}
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 10

好吧,首先,你有一个关闭标记select,你试图放入select元素,这使代码无效.

然后,select元素如何处理它的内容可能存在问题.解析HTML代码时,该select元素没有任何子元素,就像常规元素一样.相反,选项是其options集合中的项目.

如果要更改select元素中的项目,请更改其option集合的内容.即添加项目,option使用该document.createElement方法创建对象并添加到集合中.例:

var opt = document.createElement('OPTION');
opt.text = 'Choose me';
opt.value = 42;
document.getElementById('bandwidth').options.add(opt);
Run Code Online (Sandbox Code Playgroud)