在Multple = On的下拉列表中显示选定值
问题描述:
我试图在下拉列表中显示所有选定的值。下面显示的代码仅用于显示第一个值,但我很难理解如何使其显示,每个值都是选定的。在Multple = On的下拉列表中显示选定值
function myFunction() {
var x = document.getElementsByName("Car").item(0).value;
document.getElementById("demo").innerHTML = "You selected: " + x;
}
<p>Select a new car from the list.</p>
<select name="Car" multiple="on" size="5" onchange="myFunction()">
<option value="Audi">Audi
<option value="BMW">BMW
<option value="Mercedes">Mercedes
<option value="Volvo">Volvo
</select>
<br>
The car is:
<p id="demo"></p>
答
为什么不使用jQuery?
function myFunction() {
var x = $('#car').val()
$('#demo').html("You selected: " + x.join(", "))
}
$('#car').change(function() {
myFunction();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Select a new car from the list.</p>
<select id="car" name="Car" multiple="on" size="5">
<option value="Audi">Audi
<option value="BMW">BMW
<option value="Mercedes">Mercedes
<option value="Volvo">Volvo
</select>
<br>
The car is:
<p id="demo"></p>
答
在这里你去:https://jsfiddle.net/2gq824q2/15/
function myFunction() {
var sSelected = '';
[].forEach.call( document.querySelectorAll('#Car :checked') , function(elm){
\t if(sSelected !== '') sSelected += ', ';
\t sSelected += elm.value;
\t \t })
document.getElementById("demo").innerHTML = "You selected: " + sSelected;
}
<p>Select a new car from the list.</p>
<select id="Car" multiple="on" size="5" onchange="myFunction()">
<option value="Audi">Audi
<option value="BMW">BMW
<option value="Mercedes">Mercedes
<option value="Volvo">Volvo
</select>
<br>
The car is:
<p id="demo"></p>
我更新的功能,并注意选择现在有一个ID。
+0
是否可以在不使用ID(仅使用NAME)的情况下执行此操作? – Dogsled
我应该提到这较早,但我想用名称(而不是ID)来执行此任务。选择下拉选项的HTML由包含NAME(不是ID)的“程序”生成。 – Dogsled