如何将自定义Javascript和外部src链接添加到重力表单?

时间:2014-03-14 12:35:17

标签: javascript php jquery wordpress gravity-forms-plugin

我知道我们可以使用以下方法将自定义脚本注入重力形式:http://www.gravityhelp.com/documentation/page/Gform_register_init_scripts

该示例使用jquery脚本。但是可以像下面那样注入正常的javascript代码吗?

var addresses = document.getElementsByClassName('classAddress');
i = addresses.length;

while (i--) {
   var autocomplete = new google.maps.places.Autocomplete(addresses[i]);
}

另外,如何向JS添加一个外部链接到Gravity Form实例,如下所示:

<script type='text/javascript' src='...'></script>

不确定在functions.php或与Gravity Form相关的php文件

中的位置

1 个答案:

答案 0 :(得分:1)

是的,你可以。这就是我做的方式(准备一个疯狂的hacky但工作的装置)。这是一个非常丑陋,令人讨厌的方式,但有一个时间限制所以我提前道歉,因为这不是WordPress的做事方式。

我创建了一个自定义字段mycustomfield(使用css我在表单上看不到)然后我只是过滤了字段,并在其中包含8个jquery文件的php文件。因此,创建一个名为scriptjs.php的空文件,你可以在那里放置你想要的任何内容,它将被拉入表单中。

<script type='text/javascript' src='...'></script>

将以下代码添加到functions.php中,更改&#39; plugins_url&#39;在您的主题文件夹的代码中或您计划托管scriptsjs.php文件的任何位置。不要忘记创建自定义字段,或者只是过滤掉您不使用的其他字段。

add_filter("gform_field_input", "mycustomfield_input", 10, 5);

function mycustomfield_input($input, $field, $value, $lead_id, $form_id){
    if($field["type"] == "mycustomfield"){
            $input_name = $form_id .'_' . $field["id"];
            $tabindex = GFCommon::get_tabindex();
            $css = isset( $field['cssClass'] ) ? $field['cssClass'] : '';
            $input='';
            if(!is_admin()){
                $input=file_get_contents(plugins_url('scriptjs.php', __FILE__));
            }
    }
    return $input;
}