GravityForms 上的自定义输入名称

Posted

技术标签:

【中文标题】GravityForms 上的自定义输入名称【英文标题】:Custom Input Names on GravityForms 【发布时间】:2012-11-22 15:45:52 【问题描述】:

如何将自定义输入名称添加到重力表单?我需要向需要非常具体的表单名称的第三方服务提交表单。

我目前的想法是编写一些 jQuery 来在页面加载时动态重命名所有内容。显然这并不理想。

重力形式:http://www.gravityforms.com/

【问题讨论】:

GF 有一堆动作和过滤钩子,你检查过吗? 【参考方案1】:

联系重力表格的制造商后,听起来他们不支持自定义输入名称。作为一种解决方法,我编写了一些 jQuery 来使用正确的表单名称重命名输入。例如:

$("input#input_1_1").attr("name","first_name");

【讨论】:

【参考方案2】:

只需在functions.php中添加一些代码并填写表格,然后将通过电子邮件向您发送ID名称列表,它们与您可以使用开发人员工具等的名称相同。这对我来说更快。然后更改代码以通过 curl 使用不同的输入名称发布。

这使用php所以它在服务器上处理。这样您就不必担心浏览器中禁用了 JS 的人。

http://0to5.com/gravity-forms-submitting-forms-to-3rd-party-applications/

【讨论】:

这不再有效。在最新版本的 Gforms + WP 上引发错误。 我将不得不再次测试,看看它是否仍然适用于我,感谢更新!【参考方案3】:

添加一个新字段(html 字段)。在此字段的内容设置中添加此带有脚本标签的 javascript

非jquery解决方案:

document.getElementById("input_14_4").setAttribute("name", "email");

我在这里找到的另一个解决方案

https://docs.gravityforms.com/gform_field_content/

add_filter( 'gform_field_content', function ( $field_content, $field , $value, $lead_id, $form_id) 
 if ( $form['id'] != 14 ) 
        //not the form whose tag you want to change, return the unchanged tag
        return $field_content;
    
    if ( $field->id == 3 ) 
        return  preg_replace( "|name='(.*?)'|", "name='email'", $field_content );
    
  
    return $field_content;
, 10, 5 );

【讨论】:

纯代码答案并不是特别有用。请添加一些关于此代码如何解决问题的描述。

以上是关于GravityForms 上的自定义输入名称的主要内容,如果未能解决你的问题,请参考以下文章

输入焦点时在 iOS(和所有移动设备)上的自定义滚动

重力表单 - 添加自定义事件不通过Google跟踪代码管理器触发

Django ManyToMany 字段上的自定义列名

iOS:设备上的自定义位置

使用用户提供的自定义名称脚本文件中的变量

SaveFileDialog 上的自定义检查文件名