我有多个动态(组合框)下拉列表,我想在点击每个列表的单个变量上获取不同列表中所有选定项的值
function createList(arrunique,arrayout){
for (i=0 ; i < arrayout[0].length ; i++){
var divId = i;
$('#tb').append('<select class="list" onclick="getChecked()" name="combo" id="'+divId+'"></select>');
var select = document.getElementById(divId);
select.options[select.options.length] = new Option("Select "+ arrunique[i][0]);
for (j=1 ; j < arrunique[i].length ; j++){
select.options[select.options.length] = new Option(arrunique[i][j]);
}
}
}
function getChecked(){
var elm = document.getElementByName("combo");
alert(elm.options[elm.selectedIndex].value);
}
请建议我如何获得这些所选项目的价值 我怎样才能获得这些选定项目的值 请建议我如何获得这些选定项目的价值 我如何获得这些选定项目的值
答案 0 :(得分:2)
你使用jQuery吗?试试这个:
function getChecked(){
alert($('select[name="combo"]').find(":selected").text());
}
<强>更新强>
如果你想用动态标签获取值,只需输入一个参数。
function getChecked(element){
alert($('select[name="' + element + '"]').find(":selected").text());
}
致电:
getChecked('combo')
getChecked('combo_2')
getChecked('combo_3')
...
答案 1 :(得分:0)
这是一个jsfiddle做你需要的http://jsfiddle.net/krasimir/bWfEd/5/ 它根据预定义的数组和对象创建下拉列表。它为每个变化事件附加一个事件。稍后您可以浏览每个select元素并获取其值:
JS
var wrapper = document.getElementById("wrapper");
var selects = [];
var buildDropdowns = function(dropdowns) {
for(var i=0; dropdown=dropdowns[i]; i++) {
var select = document.createElement("SELECT");
for(var j=0; option=dropdown[j]; j++) {
var o = new Option(option.label, option.value);
select.options[select.options.length] = o;
}
wrapper.appendChild(select);
select.addEventListener("change", getValues);
selects.push(select);
}
}
var getValues = function() {
var values = [];
for(var i=0; select=selects[i]; i++) {
values.push(select.value);
}
alert(values);
}
buildDropdowns([
[
{ value: 1, label: "Option1"},
{ value: 2, label: "Option2"},
{ value: 3, label: "Option3"},
{ value: 4, label: "Option4"}
],
[
{ value: 1, label: "Option1"},
{ value: 2, label: "Option2"},
{ value: 3, label: "Option3"},
{ value: 4, label: "Option4"}
],
[
{ value: 1, label: "Option1"},
{ value: 2, label: "Option2"},
{ value: 3, label: "Option3"},
{ value: 4, label: "Option4"}
]
]);
HTML
<div id="wrapper"></div>
请注意 getValues 实际上可以访问每个投影,因此您可以使用所选值执行任何操作。
答案 2 :(得分:0)
我认为在阿尔迪的答案非常接近,但并不完全。
你必须得到:选择选项元素,而不是选择。这意味着选择器应该是:$('select[name="' + element + '"] option:selected').text()
使用最新的遗留jQuery的工作示例:
HTML:
<select name="testSelect">
<option value="1">Test1</option>
<option value="2">Test2</option>
<option value="3">Test3</option>
<option value="4">Test4</option>
<option value="5">Test5</option>
</select>
<div class="log"></div>
使用Javascript:
function getChecked(element){
$('.log').append('<br/>Selected element: ' + $('select[name="' + element + '"] option:selected').text());
}
$('select').on('change', function() {
getChecked($(this).prop('name'));
});