【问题标题】:jQuery to populate hidden input but retain existing contentjQuery填充隐藏输入但保留现有内容
【发布时间】:2012-11-12 09:39:15
【问题描述】:

我有以下代码来使用页面上所有复选框的值填充隐藏的输入表单,但是我也想保留复选框的预填充值,但不知道如何执行此操作。

这是我当前的代码,任何帮助将不胜感激!

$(function(){

  function Populate(){
  vals = $('input[type="checkbox"]:checked').map(function() {
      return this.value;
  }).get().join(', ');
  console.log(vals);
  $('#hidden_form_id').val(vals);
  }

  $('input[type="checkbox"]').on('change', function() {
  Populate()
  }).change();

});

【问题讨论】:

  • “但是我也想保留复选框的预填充值” - 您的意思是要保留隐藏输入的预填充值吗?您将无法仅将选中的复选框值附加到隐藏输入值的末尾,因为每次更改复选框时都会重复执行此填充。你能澄清一下想要的输出吗?

标签: jquery forms input


【解决方案1】:

你可以修改你的语句

改变

$('#hidden_form_id').val(vals);

$('#hidden_form_id').val($('#hidden_form_id').val() + vals);

您可以使用 += operator 来使用 javascript 保留现有价值

$('#hidden_form_id')[0].value += vals;

你的代码是

 function Populate(){
  vals = $('input[type="checkbox"]:checked').map(function() {
      return this.value;
  }).get().join(', ');
  console.log(vals);
  $('#hidden_form_id')[0].value += vals;
  }

【讨论】:

  • $('#hidden_form_id').value += vals; 不起作用,它应该是 $('#hidden_form_id')[0].value += vals;(更改 DOM 元素的 value 属性,而不是 jQuery 对象)。
  • 感谢这是完美的,周一早上的大脑显然工作不正常!再次感谢!
  • 事实上,每次添加新的复选框时,脚本似乎都会复制隐藏表单字段的全部内容……嗯!
  • 把实现放在一边告诉我你想达到什么目标?
  • 我认为您的代码已经这样做了,我觉得不会存在的一件事是由 $('input[type="checkbox"]').on('change' 触发的更改事件, function() { Populate() }).change();删除 .change()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多