我最近发布了另一个关于如何将内容添加到字符串(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,)。我是否需要以某种方式刷新隐藏字段中的变量值?
感谢所有帮助,谢谢!
答案 0 :(得分:1)
在页面加载时执行以下行:
ss_form.hidden = {'field_XXXXX': selections };
这会分配selections
的值,因为它当时是 。 field_XXXXX
属性是一个单独的变量,在以后为selections
分配不同的值时不会更改。
因此,当点击事件触发时,您将新的(更长的)值分配给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);