将隐藏字段的值更改为使用javascript提交的复选框的值联系表单7 Wordpress插件

时间:2018-05-31 16:52:27

标签: javascript wordpress mailchimp

我一直试图让这个工作超过一个星期,无休止地寻找解决方案,我无法弄清楚我做错了什么。我不是一个程序员,只是试图将一些功能用于管道以使其工作......请帮忙!

我在Wordpress页面的联系表格7表格中有以下复选框输入。我有Mailchimp for Wordpress更新一个反映访客兴趣的组。我试图获取分配给隐藏输入字段的组的值,以便内置邮件功能和其他Zapier集成可以使用兴趣值。大多数这些应用程序似乎都缺乏对Mailchimp中的组功能的支持。

表格html如下:

<p>
    <label>Which Are You Most Interested In?</label></br>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="ac2ed8233d" 
        required=""><span>Interest 1</span>
    </label>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="s3g2c99k0x"
        required=""> <span>Interest 2</span>
    </label>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="k9n6xp3s26"
        required=""> <span>Interest 3</span>
    </label>
</p>

<input type="hidden" id="int-in" name="int-in"</input>

-

我尝试了几种变体,包括一些内联内容,将代码放在页面的顶部或底部,将其放入Contact Form 7的附加部分,将其放入wordpress内的脚本插件中,试图看看它是否是一个数组的东西,并尝试从阵列推送代码(更多的是我的头脑)和其他许多人。这是我基本上想要做的事情,虽然错误地通过这个代码,因为显然它不起作用......

JS:

    $('form').submit(function() {
    $('input[name="#mc4wp-INTERESTS[gs8o25e9bc] . 
    []"]').change(function(){ 
    $('#int-in').val($('input[name="#mc4wp-INTERESTS[gs8o25e9bc] . 
    []"]').val());
    });

-

在线对Mailchimp群组没有太多支持,我怀疑大多数联系人应用程序的群组功能,甚至没有付费插件功能。 Mailpressmp for Wordpress拥有我能找到的最多支持,你仍然需要做一些修修补补才能让它工作。我已经准备好知道什么是有效的,而不是我一直在尝试的所有东西!先感谢您。对此,我真的非常感激!

1 个答案:

答案 0 :(得分:0)

Wordpress会禁用$快捷方式,因此您需要将$替换为jQuery或包装您的代码:

(function($){
  // your code here
})(jQuery);

另外,这些复选框的name并不包含主题标签。我也不知道你在那里用那些点和线条做什么。 此外,您只有在提交表单时才分配onchange处理程序,但您希望从一开始就让它工作。

这是一个解决方案,它设置onchange处理程序从所有选中的复选框中获取值并将其放入隐藏的输入中。

&#13;
&#13;
var selector = 'form input[name="mc4wp-INTERESTS[gs8o25e9bc][]"]';

(function($) {
  $(selector).change(function() {
    var interests = Array.from(document.querySelectorAll(selector))
      .filter(e => e.checked).map(e => e.value).join(",");
    $('#int-in').val(interests);
    console.log("set to", interests);
  });
})(jQuery);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <p>
    <label>Which Are You Most Interested In?</label><br/>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="ac2ed8233d"><span>Interest 1</span>
    </label>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="s3g2c99k0x"> <span>Interest 2</span>
    </label>
    <label>
        <input name="mc4wp-INTERESTS[gs8o25e9bc][]" type="checkbox" 
value="k9n6xp3s26"> <span>Interest 3</span>
    </label>
  </p>

  <input type="hidden" id="int-in" name="int-in">
  <input type="submit">
</form>
&#13;
&#13;
&#13;