【问题标题】:Gravity Forms call by ajax displays form fields as disabled通过 ajax 调用 Gravity Forms 将表单字段显示为禁用
【发布时间】:2014-06-16 05:30:26
【问题描述】:

当我使用 ajax 在我的主题的 functions.php 中调用 Gravity Form 时,表单字段被禁用。 任何解决方案都会对我有很大帮助。

add_action('wp_head', 'mytheme_fn');
add_action('wp_ajax_mythem_load_gravityform', 'mythem_load_gravityform_call');
 function mytheme_fn(){
?>
<script>
    jQuery(document).ready(function () {
        var data = {
            action: 'mythem_load_gravityform'
        };

        jQuery.post(
                ajaxurl,
                data
            ).success(function (data) {
                jQuery('.gformholder').html(data);

            });

    });
</script> <?php }
function mythem_load_gravityform_call(){
    gravity_form(1, false, false, false, null,false);
  exit;
}

提前谢谢你。

【问题讨论】:

    标签: wordpress gravity-forms-plugin


    【解决方案1】:

    来自 Gravity Forms 支持专家:

    “这个问题是由 GF 对表单渲染逻辑的实现引起的。他们检查 is_admin() 是否返回 true(当您在 Wordpress 上调用 ajax 时会返回 true),如果是,他们会像在管理员中一样渲染它。”

    我们在 Gravity Forms 1.9 中进行了许多更改,因此在加载表单和字段时不再执行 is_admin 检查,这意味着现在可以通过 AJAX 加载表单和字段并且它们将正确呈现。

    Gravity Forms 1.9 刚刚发布:http://www.gravityhelp.com/gravity-forms-v1-9-released/

    关于增强的用户界面,它由 selected.js 脚本提供支持,当您对底层选择元素进行更改时,您将需要触发所选界面的更新:http://harvesthq.github.io/chosen/options.html#triggerable-events

    【讨论】:

      【解决方案2】:

      这个问题是由 GF 的表单渲染逻辑实现引起的。他们检查 is_admin() 是否返回 true(当您在 Wordpress 上调用 ajax 时会返回 true),如果是,他们会像在管理员中一样呈现它。

      我可以在这里想到两个解决方案:

      1) 虚拟端点 创建一个没有头或脚的模板文件的虚拟页面,只是一个普通的gravity_form(...); 然后从你的 js 调用这个 url。

      2) 插件 创建一个插件,注册自定义查询变量(使用 query_vars 过滤器),然后通过显示gravity_form(...) 输出来处理查询变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-20
        • 2018-08-29
        • 1970-01-01
        • 2021-02-22
        • 2015-10-06
        • 2013-02-27
        • 2020-06-17
        • 2022-01-17
        相关资源
        最近更新 更多