jQuery - 来自选择输入的隐藏输入值

时间:2010-07-07 13:17:40

标签: javascript jquery html forms

我有这样的事情:

<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 个答案:

答案 0 :(得分:4)

类似的东西:

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

说明:

    只要选择字段的值发生变化,
  • change()就会被触发
  • 使用map(),我们会创建一个select字段值的数组,并将join创建为以逗号分隔的字符串

答案 1 :(得分:0)

change事件就是你所追求的。

答案 2 :(得分:0)

.serialize()方法可以作用于选择了单独表单元素的jQuery对象,例如“input”,“textarea”和“select” - 这意味着您可以执行以下操作:

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

每个“select”都需要一个名称值,并产生:

selec1 = 1&安培; SELECT2 = 2及选择三= 1

答案 3 :(得分:0)

你真的需要使用Javascript吗?如果为所有三个选择框指定相同的“name”属性,则值将以逗号分隔的列表的形式发送到服务器。

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