javascript - 添加到[禁用多重]动态选择字段的选项未发布?

标签 javascript forms

我使用 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/

相关文章:

javascript - 如何在 JavaScript/jQuery 中返回序列化数组?

javascript - 我需要来自命名节点映射的值

javascript - kendo ui 网格过滤器不适用于整数类型的列

javascript - 从同级框架中定位包含 iframe 的框架

Visual Studio 2013 中的 C++ UI 替代方案

javascript - 如何选择具有特定名称的输入?

javascript - 将文本从表单发送到 Canvas 元素中的文本时,删除文本不起作用

forms - symfony 是否有一个内置的方法来将受污染的值与原始值进行比较?

javascript - Angular 2 - 单击更改图标

javascript - HTML Onclick 事件仅适用于 # anchor 标记