javascript - 以表单形式传递所有选项值

标签 javascript php html forms

在表单中,我有一个带有 id="keywords"select 元素。该元素在 HTML 文件中具有 size="6",但没有 option 元素。页面加载时执行的 JavaScript 函数将填充列表,如下所示:

function setKeywords() {
    for (i = 0; i <= 5; i = i + 1) {
        var option;
        option = document.createElement("option");
        option.name = "keyword" + (i + 1).toString();
        option.value = "null";
        option.text = "";
        document.getElementById("keywords").add(option);
    }
}
然后,用户可以通过其他 JavaScript 函数向列表添加和删除最多六个值(其代码对于本问题的目的没有用),然后我希望传递这六个选项元素的值(以及表单中的其他输入值)通过 POST 发送到另一个页面。我认为,由于我将这些元素命名为 keyword1keyword2 等,因此这些值将与表单的其余部分一起传递。表单中的其他输入值已成功传递,但这些关键字却没有发生这种情况。

为了将这些 option 元素的值与表单的其余部分一起传递,我必须更改什么?

编辑 1:这是创建相关 select 元素的 HTML 代码。

<select id="keywords" size="6"></select>

编辑 2:这些是用于向 select 元素添加和删除选项的 JavaScript 函数。 keywordslist 是表单中的另一个 select 元素,其中包含用户可以添加到 keywords 元素的关键字。

var keywordsArea = document.getElementById("keywords");
var keywordslist = document.getElementById("keywordslist");
function addKeyword() {
    if (keywordsArea.options[5].value === "null") {
        for (i = 0; i <= 5; i = i + 1) {
            if (keywordsArea.options[i].value === "null") {
                keywordsArea.options[i].value = keywordslist.value;
                keywordsArea.options[i].text = keywordslist.value;
                break;
            }
        }
    }
}
function removeKeyword() {
    if (keywordsArea.selectedIndex >= 0 && keywordsArea.selectedIndex <= 5) {
        for (i = keywordsArea.selectedIndex; i <= 5; i = i + 1) {
            if (i === 5) {
                keywordsArea.options[i].value = "null";
                keywordsArea.options[i].text = "";
            } else {
                keywordsArea.options[i].value = keywordsArea.options[i + 1].value;
                keywordsArea.options[i].text = keywordsArea.options[i + 1].text;
            }
        }
    }
}

最佳答案

更改:

<select name="name" ...

致:

<select name="name[]" ...

尝试执行此操作,值将添加到数组中

来自您发布的 HTML 代码

更改:

<select id="keywords" size="6"></select>

至:

<select name="keywords[]" id="keywords" size="6"></select>

关于javascript - 以表单形式传递所有选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737237/

相关文章:

php - 如何列出目录的所有内容?

c# - control.Attributes.Add 和 control.Attributes[] 之间的区别

javascript - 如何旋转 leaflet.js map

javascript - 如何从 Javascript 以编程方式调用 EditTextCell 的 onBrowserEvent()?

php - 如何关闭脚本中的xdebug?

php - 正则表达式和 PHP - 从 img 标签中分离出 src 属性

javascript - ajax成功后如何在模态上显示隐藏按钮?

javascript - 在 asp.net MVC 中过滤 ListView 的最佳方法

javascript - 检查 Jest 和 enzyme 中的按钮文本

Javascript 单引号替换被忽略