0

我最近发布了另一个关于如何向字符串添加内容的问题(使用 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 中查看时,唯一通过的值是初始变量值(性别,)。我是否需要以某种方式刷新隐藏字段中的变量值?

感谢所有帮助,谢谢!

4

1 回答 1

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);
于 2018-03-16T20:10:58.880 回答