如何在表单中发布多项选择的值?当我点击“提交”时,不会发布任何选定的值。
<form id="form" action="" method="post">
<div>
<select id="inscompSelected" multiple="multiple" class="lstSelected">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type="submit" value="submit">
</div>
</form>
您需要添加一个
name
属性。
由于这是一个多重选择,在 HTTP 级别,客户端仅发送多个具有相同名称的名称/值对,如果您使用带有
method="GET": someurl?something=1&something=2&something=3
的表单,您可以自己观察到这一点。
对于 PHP、Ruby 和其他一些库/框架,您需要在名称末尾添加方括号 (
[]
)。框架将解析该字符串并以某种易于使用的格式(例如数组)呈现它。
除了手动解析请求之外,没有与语言/框架/库无关的方法来访问多个值,因为它们都有不同的 API
对于 PHP,您可以使用:
<select name="something[]" id="inscompSelected" multiple="multiple" class="lstSelected">
试试这个:这里 select 是你选择的元素
let select = document.getElementsByClassName('lstSelected')[0],
options = select.options,
len = options.length,
data='',
i=0;
while (i<len){
if (options[i].selected)
data+= "&" + select.name + '=' + options[i].value;
i++;
}
return data;
数据采用查询字符串的形式,即name=value&name=anotherValue
我要采取的路线是在表单中添加一个隐藏字段,并在多选元素的 onchange 事件中使用与上面 @Chin2 类似的算法修改其值。然后也许从选择元素中删除名称字段。