Javascript jQuery-从选择输入中隐藏输入值

Javascript jQuery-从选择输入中隐藏输入值,javascript,jquery,html,forms,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">...</o

我有这样的想法:

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

...
...
...
...
...
...
我希望每次在上面的每个“选择”输入字段中选择不同的选项时,隐藏的输入字段值都会更改。 此值将包含所有输入字段中用逗号分隔的选定选项

我怎样才能做到这一点呢?

事件就是你所追求的。

事件就是你所追求的。

类似于:

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

  • 每当选择字段的值更改时激发
  • 使用,我们创建一个
    选择
    字段值数组,并
    将它们连接到一个由逗号分隔的字符串中
类似于:

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

  • 每当选择字段的值更改时激发
  • 使用,我们创建一个
    选择
    字段值数组,并
    将它们连接到一个由逗号分隔的字符串中
.serialize()方法可以作用于已选择单个表单元素(如“input”、“textarea”和“select”)的jQuery对象,这意味着您可以执行以下操作:

$('.bla').change(function(){
   var opts = $('select').serialize();
   $('.alloptions').val(opts);
});
每个“选择”都需要一个名称值,并产生:

selec1=1&select2=2&select3=1

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

$('.bla').change(function(){
   var opts = $('select').serialize();
   $('.alloptions').val(opts);
});
每个“选择”都需要一个名称值,并产生:


selec1=1&select2=2&select3=1

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


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

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


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

您会发现这更容易(启动更快)如果您使用的是标识符而不是类。我希望每次在上面的每个选择输入字段中选择不同的选项时,隐藏的输入字段值都会更改。我想你不会的。你想解决什么问题?我需要一个wordpress小部件中的特定选项。问题是这个选项需要是一个数组,所以我需要一个输入字段,通过使用逗号分隔的所有select值来模拟数组。然后在后端,我使用explode从这个字符串创建一个数组。@Alex:那么表单实际上是发送到后端并在那里处理的?为什么不直接提取select字段的值呢?像
$config=array($\u POST['optionA'],$\u POST['optionB'],$\u POST['optionC'])
?@Alex:我不确定WP是否允许数组。但是你可以测试它。您是对的,如果select元素具有相同的名称,那么只有最后一个元素才能使用它。要使PHP将它们视为数组,您必须在名称后面附加
[]
,即
..
另请参见:关于示例3,您会发现它更容易(启动更快)如果您使用的是标识符而不是类。我希望每次在上面的每个选择输入字段中选择不同的选项时,隐藏的输入字段值都会更改。我想你不会的。你想解决什么问题?我需要一个wordpress小部件中的特定选项。问题是这个选项需要是一个数组,所以我需要一个输入字段,通过使用逗号分隔的所有select值来模拟数组。然后在后端,我使用explode从这个字符串创建一个数组。@Alex:那么表单实际上是发送到后端并在那里处理的?为什么不直接提取select字段的值呢?像
$config=array($\u POST['optionA'],$\u POST['optionB'],$\u POST['optionC'])
?@Alex:我不确定WP是否允许数组。但是你可以测试它。您是对的,如果select元素具有相同的名称,那么只有最后一个元素才能使用它。要使PHP将它们视为数组,您必须在名称后面附加
[]
,即
..
另请参见:关于示例3,这对我帮助很大!!谢谢,这对我帮助很大!!