代码之家  ›  专栏  ›  技术社区  ›  Alex

jQuery-从select输入中隐藏输入值

  •  1
  • Alex  · 技术社区  · 14 年前

    <select class="bla">
      <option value="1">...</option>
      <option value="2">...</option>
    </select>
    
    <select class="bla">
      <option value="1">...</option>
      <option value="2">...</option>
    </select>
    
    <select class="bla">
      <option value="1">...</option>
      <option value="2">...</option>
    </select>
    
    <input class="alloptions" type="hidden" value="">
    

    此值将包含用逗号分隔的所有输入字段中的选定选项。

    我该怎么做?

    4 回复  |  直到 14 年前
        1
  •  4
  •   Felix Kling    14 年前

    比如:

    $('select.bla').change(function() {
        $value = $('select.bla').map(function(){return $(this).val()}).get().join(',');
        $('input.alloptions').val($value);
    });
    

    说明:

    • change() 每当select字段的值更改时激发
    • map() 我们创建一个 select 字段和 join 将它们转换为以逗号分隔的字符串
        2
  •  0
  •   gblazex    14 年前

    change 事件就是你所追求的。

        3
  •  0
  •   Mark    14 年前

    $('.bla').change(function(){
       var opts = $('select').serialize();
       $('.alloptions').val(opts);
    });
    

    每个“select”都需要一个name值,并生成:

        4
  •  0
  •   MisterZimbu    14 年前

    你真的需要用Javascript吗?如果给所有三个选择框赋予相同的“name”属性,则这些值将作为逗号分隔的列表发送到服务器。

    只需确保在拆分时对每个元素进行修剪,因为有些浏览器会在逗号后加空格。