2010-07-07 80 views
1

我有这样的事情:jQuery的 - 从选择输入隐藏输入值

<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=""> 

我想隐藏的输入字段的值来改变每一个不同的选项,在上述各选择输入字段选择的时间。 该值将包含所有输入字段中用逗号分隔的选定选项。

我该怎么做?

+0

如果您使用标识符而不是类,则会更容易(并且更快启动)。 – 2010-07-07 13:22:52

+0

*我希望隐藏的输入字段值每次在上面的每个选择输入字段中选择不同的选项时都会改变。*我认为你不这样做。你想解决什么问题? – 2010-07-07 13:22:52

+0

好吧,我需要一个WordPress的小部件内的某个选项。问题是这个选项需要是一个数组,所以我需要一个输入字段来模拟数组,所有的选择值都以逗号分隔。然后在后端我使用爆炸从这个字符串创建一个数组。 – Alex 2010-07-07 13:35:53

回答

4

喜欢的东西:

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

说明:

  • change()被炒鱿鱼只要选择字段的值更改
  • 随着map()我们创建select字段的值的数组, join他们以逗号分隔的字符串
+0

谢谢!这工作:D – Alex 2010-07-07 13:33:06

+0

谢谢,它帮助我很多! – 2017-03-15 11:06:29

0

的.serialize()方法可作用已经选择单独的形式的元素,例如“输入”,“文本区域” jQuery对象上,而“选择” - 这意味着你可以执行以下操作:

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

每个 “选择” 需要一个名称和值会产生:

selec1 = 1个&选择2 = 2 &选择3 = 1

0

你真的需要使用JavaScript是什么?如果您将所有三个选择框都赋予相同的“名称”属性,则这些值将以逗号分隔列表的形式发送到服务器。

只要确保在进行拆分时对每个元素进行修剪,因为某些浏览器会在逗号后面放置空格。