JavaScript连接多个下拉选择
JavaScript connecting several drop down selections
我是JavaScript新手,所以我想知道如果我有几个下拉选择,如何显示所有选择的消息?
例如:我有一个下拉式的颜色选择,第二个是尺寸,第三个是数量。所以,我想显示所有选择的东西的信息,比如:你选择"黄色","M码","2件"。就像买家选择的规格一样。
我试过这样:
<script>
function dialog() {
var color= document.getElementById ("color").value;
var size = document.getElementById ("size").value;
var amount= document.getElementById ("amount").value;
document.getElementById("demo").innerHTML="You choose" +color+ "size" +size "in an amount of" +amount+;
}
</script>
但只有当我有一个下拉菜单时,它才有效,而不是当我有更多下拉菜单时。。。谢谢你的帮助。
我建议在下拉列表中添加一个默认值,比如:
<select>
<option value="unselected">Select a Size</option>
</select>
然后在对话框功能中,检查从下拉列表中检索到的值,看看它们是否与"未选中"以外的值匹配:
if (color != 'unselected' && size != 'unselected' && amount != 'unselected') {
document.getElementById("demo").innerHTML="You choose" +color+ "size" +size+ "in an amount of" +amount;
}
通过这种方式,您还可以隔离尚未选择的字段。示例:
if (color == 'unselected') {
alert('You need to select a color');
}
以下是Rob Brander和Scott Kaye的组合建议和编辑的工作片段示例。要点是为用户界面提供独立的代码,并为验证提供另一组代码,简单地检查答案是否不是默认答案。
更新
根据Rob的建议,我添加了一个else
条件,这样,如果所有3个下拉列表的输入都无效,dialog()
就会清除文本。
function dialog() {
var color = " " + document.getElementById("color").value + ", ";
var size = " " + document.getElementById("size").value + ", ";
var amount = " " + document.getElementById("amount").value + ".";
var defaultVal = "unselected";
var colorDefault = document.getElementById("color").value;
var sizeDefault = document.getElementById("size").value;
var amountDefault = document.getElementById("amount").value;
if (colorDefault != defaultVal && sizeDefault != defaultVal && amountDefault != defaultVal) {
document.getElementById("demo").innerHTML = "You choose color" + color + "size" + size + "in an amount of" + amount;
} else {
document.getElementById("demo").innerHTML = "";
}
}
document.getElementById("color").addEventListener("click", dialog);
document.getElementById("size").addEventListener("click", dialog);
document.getElementById("amount").addEventListener("click", dialog);
document.getElementById("color").addEventListener("mousedown", dialog);
document.getElementById("size").addEventListener("mousedown", dialog);
document.getElementById("amount").addEventListener("mousedown", dialog);
document.getElementById("color").addEventListener("mouseup", dialog);
document.getElementById("size").addEventListener("mouseup", dialog);
document.getElementById("amount").addEventListener("mouseup", dialog);
div {
width: 80%;
border: solid 1px #000;
background-color: #ACE;
height: 125px;
margin-top: 10px;
padding: 3px;
font-family: arial;
}
<select id='color'>
<option value="unselected">Color...</option>
<option value="red">Red</option>
<option value="blue">Blue</option>
<option value="orange">Orange</option>
</select>
<select id='size'>
<option value="unselected">Size...</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="32">32</option>
</select>
<select id='amount'>
<option value="unselected">Amount...</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<div id='demo'></div>
相关文章:
- JavaScript连接多个下拉选择
- 连接变量 + 选择器
- 从另一个选择框并使用数据库连接填充选择框
- 链接下拉列表选择列表代码 -- 连接数据
- 选择选项时关闭多个 WebSockets 连接
- 使用 javascript 库 draw2d 选择连接链接不准确
- 在 d3.js 中填充已连接节点的选择列表
- 警告:失败的 propType:在“维度选取器”中未指定所需的属性“维度名称”.检查“连接(维度选择器)”的渲染方法
- Angularjs.如何使用选择框连接表单中的字段.更改选择应更改字段
- 字符串和变量连接作为jQuery选择器不起作用.可能的原因是关闭
- 制作两个连接的选择字段非常丑陋,我做错了什么
- 尝试将动态创建的带有选项的选择元素(标记)连接到动态创建的表行
- 将选择菜单连接成单个表单输入
- MongoDB选择和连接字段
- 已连接的选择标记
- 在我选择的方法在JavaScript中完成执行后,我该如何将事件连接到触发器
- jQuery UI可在连接的可排序列表中选择
- 如何在CoffeeScript中为一个选择器连接两个函数
- 如何使用连接操作查询添加日期选择器代码
- 无法获取d3.js数据.选择线路时连接和键功能工作