使用javascript更改多个选择时,为“input_name []”等输入添加值

时间:2016-10-04 08:03:55

标签: javascript jquery

这是我隐藏的输入......

 <input name="input_name[]" type="hidden"/>

我想在“更改”多个选择选项时立即为此输入添加值:

<select id="inputSelect" multiple>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
</select>

即使是函数,放javascript o的地方也与我无关。

我会接受javascript解决方案的答案,但如果有人提供jquery解决方案,我会把它作为重要信息,我会非常感谢。

非常感谢。

2 个答案:

答案 0 :(得分:1)

这是一个jQuery示例:

&#13;
&#13;
$('#inputSelect').on('change', function(){
	var newVal = $(this).val();
 $('#inputHidden').val(newVal);
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input name="input_name[]" id="inputHidden"/>
<select id="inputSelect" multiple>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这是使用核心Javascript的解决方案。它的工作原理是将事件监听器附加到ScrollPane输入,然后运行一个函数来设置隐藏<select>的值。

要定位隐藏的<input>,我们可以使用<input>并使用document.getElementsByName的名称。如果您有多个具有此名称的元素,则需要将input_name[]中方括号中的索引更改为正确的索引。在这种情况下,由于有一个名称为inputHidden[0].value = newValue;的元素,因此我们使用索引input_hidden[]。如果有2个元素,并且您想要设置第二个隐藏0的值,则可以使用<input>

inputHidden[1].value = newValue;
var inputSelect = document.getElementById('inputSelect');
   
inputSelect.addEventListener('change', function() {
  var newValue = [];

  for (var i = 0; i < inputSelect.length; i++) {
    if (inputSelect[i].selected) {
      newValue.push(inputSelect[i].value);
    }
  }

  var inputHidden = document.getElementsByName('input_name[]');
  inputHidden[0].value = newValue.join(",");
});