[英]Submit form after selecting items from multiple dropdown lists - JavaScript
这是我的HTML
<form action="processForm.html" method="post">
<label for="InputOne">Input One</label>
<select id="InputOne">
<option val="1">Item</option>
<option val="2">Item</option>
<option val="3">Item</option>
<option val="4">Item</option>
</select>
<label for="InputTwo">Input Two</label>
<select id="InputTwo">
<option val="1">Item</option>
<option val="2">Item</option>
<option val="3">Item</option>
<option val="4">Item</option>
</select>
<input type="submit" value="Submit">
</form>
如何使用户能够从多个下拉列表中进行选择,然后单击“提交”按钮? 我找到了这个答案如何在下拉列表更改时提交表单? 。 已经接近了,但我不认为这是我想要的。 这将在单个下拉列表之后提交。
简短的答案
<form id="my-form" method="post">
<select name="first-list" multiple="multiple" size="10">
<option value="0"></option>
<option value="1">first</option>
<option value="2">second</option>
<option value="3">third</option>
</select>
<select name="second-list" multiple="multiple" size="10">
<option value="0"></option>
<option value="1">first</option>
<option value="2">second</option>
<option value="3">third</option>
</select>
<!-- use this for client-side processing -->
<input type="button" name="button" value="submit" />
<!-- use this for server-side processing -->
<input type="submit" name="submit" value="submit" />
</form>
编辑
//
// Collecting selected items from one or more multiple select-lists
//
window.onload = function(){
document.getElementById("button").onclick = function(){
var lists = document.getElementsByTagName('SELECT'), chosen = [], temp = [], list = {}, i, j;
for(i = 0; i < lists.length; i++) {
list = lists[i];
temp = [];
for(j = 0; j < list.length; j++) {
if(list[j].selected) temp.push(list[j].value);
}
chosen.push(temp);
}
console.log(JSON.stringify(chosen));
// you will have JSON like this [["1","4","5"],["6","7"]]
};
现在,您已经准备好在服务器上发送JSON对象。 如果您对此有任何疑问,请查看我以前关于如何使用POST和GET方法使用JavaScript发送和接收JSON数据的答案。
并检查工作提琴 。
如果我理解正确。 您无法同时从两个选择下拉列表中提交数据。
我遇到了同样的问题,但是在表单类中添加了enctype='multipart/form-data'
解决了它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.