javascript - 多个选择的复选框下拉列表由 ; 分隔

标签 javascript jquery

我正在尝试从下拉列表中创建一个多选复选框,并通过 ; 连接所选结果。

我的代码是这样的:

var myobject = {
    ValueA : 'Text A',
    ValueB : 'Text B',
    ValueC : 'Text C',
    ValueD : 'Text D',
    ValueE : 'Text E',
    ValueF : 'Text F'
};
var select = document.getElementById("rec_mode");
for(index in myobject) {
    select.options[select.options.length] = new Option(myobject[index], index);
}
<select id="rec_mode">        
</select>

最佳答案

查看函数 selectedValue(),当选择更改其值时会触发该函数。此外,对于多个值,您必须将 multiple 属性添加到 select 标记。

var myobject = {
    ValueA : 'Text A',
    ValueB : 'Text B',
    ValueC : 'Text C',
    ValueD : 'Text D',
    ValueE : 'Text E',
    ValueF : 'Text F'
};
var select = document.getElementById("rec_mode");
for(index in myobject) {
    select.options[select.options.length] = new Option(myobject[index], index);
}

function selectedValue() {
  var selectChilds = document.getElementById("rec_mode").childNodes;
  var selectedValues = "";
  
  for(var i = 0; i < selectChilds.length; i++){
    if(selectChilds[i].selected){
      selectedValues += selectChilds[i].value + ";";
    }
  }
  
  alert(selectedValues.substring(0, selectedValues.length -1));
}
<select id="rec_mode" multiple onchange="selectedValue()">        
</select>

编辑

如果您希望使用 checkbox 标签编写代码,请遵循此代码段。

var myobject = {
    ValueA : 'Text A',
    ValueB : 'Text B',
    ValueC : 'Text C',
    ValueD : 'Text D',
    ValueE : 'Text E',
    ValueF : 'Text F'
};
var chbxs = document.getElementById("rec_mode");
for(index in myobject) {
    chbxs.innerHTML += '<input type="checkbox" value="' + index + '" /> ' + myobject[index] + '<br />'
}

function selectedValue() {
  var selectChilds = document.getElementById("rec_mode").childNodes;
  var selectedValues = "";
  
  for(var i = 0; i < selectChilds.length; i++){
    if(selectChilds[i].checked){
      selectedValues += selectChilds[i].value + ";";
    }
  }
  
  document.getElementById("result").textContent = selectedValues.substring(0, selectedValues.length -1);
}
<div id="rec_mode" onchange="selectedValue()">        
  
</div>

<p id="result"></p>

关于javascript - 多个选择的复选框下拉列表由 ; 分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55326108/

相关文章:

javascript - 我可以导入 babel-polyfill 模块而不是全部导入吗?

javascript - 使用jquery将动态创建的div添加到另一个div

javascript - 为什么 [(ngModel)] 破坏了 Angular 4 中的所有模板?

javascript - Slickgrid 自定义排序

javascript - 无法使用 angular.js 删除对象

javascript - 我如何在 JQuery 中执行循环?

jquery - data-parent 属性在崩溃 Bootstrap v4-alpha 上不起作用

jquery - 如何选择区间之间的元素

javascript - Marker 的 Z-index 高于 Infobox

javascript - React native flexbox - 如何做百分比 ||列 ||响应 ||网格等