有没有办法在selectbox中选择所有选项值?

时间:2017-01-15 22:34:05

标签: javascript select underscore.js html-select

我有一个创建许多选择框的功能。我需要一个选项值来选择一个选择中的所有值,因为如果我给出" all"作为价值,我必须做很多开关和if / else语句,如果我能避免这种情况会很好。 这是功能:

function creaselect(nomeoggetto, oggetto, nome) {

var P_P_comodo = _(A_Punti_dati).groupBy(oggetto).map(function(item, itemId) {
    console.log(oggetto);

    var result = {};
    result[itemId] = item[0][nome];
    return result
}).value();

document.write("Seleziona " + nomeoggetto + "<select id=my" + nomeoggetto + ">");
document.write("<option value=all selected>Tutti</option>");
_.each(P_P_comodo, function(value, key) {
    _.each(value, function(value, key) {
        P_P[key] = value;
        document.write("<option value=" + key + ">" + value + "</option>");

    });

});
document.write("</select><br>");

}

1 个答案:

答案 0 :(得分:0)

你需要做两件事:

  1. 设置一个函数来迭代每个选项并设置&#34;选择&#34;属性为真
  2. 当用户选择&#34; all&#34;
  3. 时,设置一个处理程序来调用此函数

    HTML

        <select id='control'>
          <option value=''>(Select one)</option>
          <option value='all'>All</option>
          <option value='none'>None</option>
        </select>
        <select id='sel' name="sometext" size='5' multiple>
          <option value='1'>text1</option>
          <option value='2'>text2</option>
          <option value='3'>text3</option>
          <option value='4'>text4</option>
          <option value='5'>text5</option>
        </select>
    

    的Javascript

        var control = document.getElementById('control');
        control.onchange = setOptions;
        function setOptions() {
          var control = document.getElementById('control');
          var val = control.value;
          if (val == 'all' || val == 'none') {
            var mySelectObj = document.getElementById('sel');
            var bool = val == 'all'
            setSelect(mySelectObj, bool);
          }  
        }
    
        function setSelect(sel, bool){
          for(var i = 0; i <sel.length; i++) {
            sel.options[i].selected = bool;
          }
        }
    

    jsFiddle:https://jsfiddle.net/mspinks/qqp7w1qk/11/

    请注意: 为了允许在选择输入上进行多选,您必须指定属性&#34; multiple&#34;。否则,您需要使用第三方选择控件。