0

我知道我们可以使用以下方法将自定义脚本注入重力形式: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或重力形式相关的php文件中的何处执行此操作

4

1 回答 1

1

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

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

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

将下面的代码添加到functions.php,将代码中的“plugins_url”更改为您的主题文件夹或您计划托管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;
}
于 2014-03-14T18:54:15.620 回答