重力表单未提交的非空总字段值

时间:2020-12-16 作者:authentictech

我创建了一个重力表单,并使用了几个总场。虽然我的表单中没有任何产品字段,总字段通常用于显示产品价格的总和,但我使用总字段是因为我喜欢它自动设置价格格式的方式,并且我正在通过自己的jQuery代码设置表单中总字段的值。“我的代码”会更新Total字段span元素中的文本和关联的隐藏输入元素。

但是,尽管这些值显示在表单的总字段中,但在提交表单时,总字段的值不会显示在表单条目或电子邮件通知中。

我知道我对Total字段的使用与预期用途不完全一致,但我不知道为什么提交条目中缺少字段值。有什么办法可以绕过这个问题吗?

1 个回复
最合适的回答,由SO网友:Dave from Gravity Wiz 整理而成

正如@richardW8k所指出的,提交时会重新计算总字段值,并将覆盖从前端提交的任何内容。

如果您的自定义jQuery代码可以替换为数字字段中的公式,那么这绝对是一种方法。如果jQuery代码正在执行一些更复杂的逻辑,那么计算数字段将与total字段有相同的问题。提交时,提交的值将被计算值覆盖。

这里有一个解决方案,允许您使用自定义jQuery代码来更新样式类似于Total字段的只读数字字段的值。

在表单中添加数字字段。

将字段标记为只读。有两种方法可以做到这一点。

The Easy Way
GF Read Only 提供从字段设置将字段标记为只读的功能。

The Hard Way
This snippet 从重力的角度来看,形状可以完成这项工作。

// update \'1\' to the ID of your form
add_filter( \'gform_pre_render_1\', \'add_readonly_script\' );
function add_readonly_script( $form ) {
    ?>

    <script type="text/javascript">
        jQuery(document).ready(function(){
            /* apply only to a input with a class of gf_readonly */
            jQuery("li.gf_readonly input").attr("readonly","readonly");
        });
    </script>

    <?php
    return $form;
}

  • 使用jQuery代码定位此数字字段以更新价格。

    使用our styles 将数字字段的样式设置为合计字段,方法是添加一个;gf\\U总计;类设置为字段的CSS类名设置。

    /**
     * Gravity Wiz // Gravity Forms // Style Number Fields like Total Field
     *
     * Use "gf_price" and "gf_total" CSS classes via the "CSS Class Name" setting to style your Number fields like a product
     * price (red) or total (green).
     */
    .gform_wrapper .gf_price input[type=text],
    .gform_wrapper .gf_price input[type=number] {
        border: 0;
        font-size: 1.2em;
        color: #060;
        text-indent: 0;
        padding: 0;
    }
    .gform_wrapper .gf_total input[type=text],
    .gform_wrapper .gf_total input[type=number] {
        color: #060;
    }
    
  • 相关推荐