如何在联系表单7 Wordpress中添加自定义javascript函数

时间:2013-12-07 23:34:21

标签: javascript wordpress plugins contact-form-7

我在使用wordpress中的联系表单7时遇到问题,需要一些帮助。 问题: 我有收音机盒有两个选项是或否。如果有人检查是的选项,则显示div一个,如果他点击否,则应显示第二个div。 我写了一个代码但是我们的联系方式7将是如何,我不知道。 这是代码。

$(document).ready(function() {
//Hide the field initially
$("#div one").hide();
  $("#div two").hide();

$('[radio radio-928]').change(function() 
{
    if ($("[radio radio-928]").val() == "yes") 
    {
        $("#div one").show();
    }
    else {
        $("#div two").hide();
        }
        if ($("[radio radio-928]").val() == "no") {
        $("#div two").show();
    }
    else {
        $("#div one").hide();
        }
});
});

5 个答案:

答案 0 :(得分:0)

这可以在Contact Form 7编辑框中完成,如下所示:

<script type="text/javascript"> 
function showdiv(element){ 
document.getElementById("div-one").style.display = element=="yes"?"block":"none";                      
document.getElementById("div-two").style.display = element=="no"?"block":"none"; 
} 
</script>
<input type="radio" name="choice" value="yes" onclick="showdiv(this.value);"> Yes<br>
<input type="radio" name="choice" value="no" onclick="showdiv(this.value);"> No<br>

<div id="div-one" style="display:none;">Yes</div>
<div id="div-two" style="display:none;">No</div>

答案 1 :(得分:0)

只需将JavaScript函数添加到您的页面,然后找到联系表单管理页面底部的“附加设置”字段,并使用on_submit JavaScript操作挂钩,如下所示:

on_submit:“MY_JavaScript_function_Name();”

答案 2 :(得分:0)

  1. 向您的Wordpress添加插件:WPBeginners插入页眉和页脚

  2. 激活插件,然后转到“设置”->“插入页眉和页脚”

  3. 在脚本标签内添加您的javascript代码。页面加载后,此脚本将位于DOM的头部

  4. 在联系表7上,使用HTML代码添加按钮,并添加代码中提到的ID属性以控制文档。

我一直这样做,特别是为了使用jQuery。

答案 3 :(得分:0)

如果您的函数在JS控制台中有效,但在窗体中保存时无效,请确保它没有空行。

由于某种原因,这些标签变成了p标签,至少在我使用过它的网站上,编辑器并不真正了解HTML。

例如按类将特定输入框的首字母大写。

<script language="javascript" type="text/javascript">
jQuery(function($){
// Capitalize first character as needed.
$.fn.capitalize = function() {
    $(this).blur(function(event) {
        var box = event.target;
        var txt = $(this).val();
        var stringStart = box.selectionStart;
        var stringEnd = box.selectionEnd;
        $(this).val(txt.replace(/^(.)/g, function($char) {
            return $char.toUpperCase();
        }));
        box.setSelectionRange(stringStart, stringEnd);
    });

   return this;
}

$('input[type=text].capitalize').capitalize();
});
</script>

一旦我删除了新行,它就可以使用facepalm ...

答案 4 :(得分:0)

我知道这是一篇旧帖子,但我想分享我的发现,以防以后有人需要它。

OP 问题定义为代码中的空行,表单编辑器向每个新行添加 P 元素。如果您打开 js 控制台,您将看到指出代码的错误。

也是我们应该注意的事情,我花了很多时间才弄清楚,编辑器删除了反斜杠。 我正在添加一些输入掩码验证并发现此代码:

 v = v.replace(/\D/g, "");

保存后变成这个:

 v = v.replace(/D/g, "");

因此,解决方法是这样声明:

 v = v.replace(/\\D/g, "");

但是,每次保存时,反斜杠都会被删除,所以我需要将其源代码保存在其他地方,以便每次都粘贴到编辑器中。

最后,我刚刚添加了一个自定义 html 小部件,其中包含脚本标记内的所有自定义 js。 这将使代码在网站中全局运行,但这是我确保用户不会弄乱表单掩码和验证代码的方式。