【问题标题】:Dynamically changing string - correct value not being submitted?动态更改字符串 - 未提交正确的值?
【发布时间】:2018-03-16 20:01:33
【问题描述】:

我最近发布了另一个关于如何向字符串添加内容的问题 (Dynamically change string with JS?),我在这方面取得了进展,但似乎没有提交更新的变量。我错过了什么吗?

这是我的代码:

<script type="text/javascript">
    var selections = 'Gender, ';
    jQuery(".add-to-form").click(function () {
      var title = jQuery(this).attr("title");
      selections += title + ', ';
      console.log(selections);
    });
    var ss_form = {'account': 'XYZ', 'formID': 'XYZ'};
    ss_form.width = '100%';
    ss_form.height = '1000';
    ss_form.domain = 'app-XYZ.marketingautomation.services';
    ss_form.hidden = {'field_XXXXX': selections }; 
</script>

这很好用,因为正确的值显示在控制台日志中,但是当我提交表单并在 SharpSpring 中查看时,唯一通过的值是初始变量值 (Gender, )。我需要以某种方式刷新隐藏字段中的变量值吗?

感谢所有帮助,谢谢!

【问题讨论】:

  • 很好奇隐藏字段的含义。它只是不显示但确实存在于 DOM 上吗?如果它不在 DOM 上,那么这就是为什么您的值没有被更新的原因。如果 DOM 上不存在,则 jQuery 无法选择或更新它。
  • 所以隐藏字段实际上并没有“显示”,而是 ss_form.hidden 部分根据字段 ID(_XXXXX 部分)提交值。基本上 ss_form.hidden = {'field_XXXXX': selections };正在提交我为选择(性别,)设置的初始值,并且没有通过点击功能添加任何内容。

标签: javascript jquery forms sharpspring


【解决方案1】:

在页面加载时执行以下行:

ss_form.hidden = {'field_XXXXX': selections }; 

这会分配selections 的值,因为它是那一刻field_XXXXX 属性是一个单独的变量,当您稍后为 selections 分配不同的值时,它不会改变。

因此,当 click 事件触发时,并且您为 selections 分配了一个新的(更长的)值,那么只有该变量会发生变化。它没有连接到上面的属性。

如何解决?只需在点击处理程序中对 ss_form.hidden.field_XXXXX 属性进行另一次分配:

jQuery(".add-to-form").click(function () {
  var title = jQuery(this).attr("title");
  selections += title + ', ';
  ss_form.hidden.field_XXXXX = selections; // <-------
  console.log(selections);
});

我假设 ss_form.hidden 是一些 API 驱动的方式来设置隐藏的 input 元素,并且这是可行的。如果没有,请确保确定需要获取新值的 input 元素,如下所示:

$('#id_of_hidden_input').val(selections);

【讨论】:

  • 非常感谢!不幸的是,我用这种方法遇到了另一个障碍,因为现在隐藏字段根本没有被注册,也没有数据被提交。我无法定位输入本身的值,因为它是加载了 SharpSpring JS 嵌入的 iframe
  • ss_form.hidden.field_XXXXX = selections 怎么样,效果更好吗?
  • 对不起,我刚刚意识到我的回答令人困惑。我尝试将其添加到单击功能中,但现在 SharpSpring 根本无法识别隐藏字段。我认为它需要在点击功能之外,以便在页面加载时被识别?
  • 是的,它需要像你拥有的那样,但是然后像我在上面的评论中写的那样在点击处理程序中添加这一行(我也在那个方向更新了答案)
猜你喜欢
  • 1970-01-01
  • 2022-08-11
  • 2012-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
相关资源
最近更新 更多