我使用 JavaScript 动态创建了选项元素。我双击一个选择字段中的选项,将其转移到第二个禁用的多选字段。这很好用。当我去提交包含新信息的表单时,出现了问题。第二个选择字段不会传递给 PHP。我假设它认为它是空的,但我添加的每个选项都是默认选择的,我可以直观地看到它们都在那里。我一直在寻找解决方案,但运气不佳。我能找到的所有内容都表明,最有可能的原因是浏览器不兼容,或者元素没有添加到表单中。如果是浏览器不兼容问题,我已经在所有主要浏览器上尝试过,结果都相同,所以我想知道我缺少哪一个(FF、Chrome、IE)。至于不添加到表单中,我不认为这怎么可能。 select 元素已经存在于表单中,我只是在其中添加新选项。我错过了什么,还是这根本不可能?
<script type="text/javascript" language="JavaScript">
function addModule(value, title) {
modules = document.getElementById('modules');
modules.options[modules.options.length] = new Option(title, value, true);
}
</script>
<form name="addModules" method="POST" action="submit.php">
<select name="moduleList" size="20" ondblclick="addModule(this.options[this.selectedIndex].text, this.value);">
<?php //dynamically created options from PHP ?>
</select>
<select id="modules" name="modules[]" multiple="multiple" size="20" DISABLED></select>
<input type="submit" value="Add Modules" />
</form>
最佳答案
不提交禁用字段。最简单的解决方案是将其更改为只读。如果您决定将其禁用,则可以创建一个隐藏字段,并使用其中的值进行更新,但我强烈建议仅使用只读,然后尝试根据需要设置其样式。
关于javascript - 添加到[禁用多重]动态选择字段的选项未发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130951/