微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 jQuery 动态更新重力形式的价格

如何解决如何使用 jQuery 动态更新重力形式的价格

我在使用 jQuery 动态更改产品价格的 Gravity 表单方面遇到了一些问题。

我正在创建一个咨询解决方案,用户可以在其中选择他们需要的咨询小时数。对于 1 到 4 小时,我每小时收取 $x 美元,对于 4 小时以上的任何小时收取 $y 美元。

为了实现这一点,我添加了重力形式的下拉菜单,其中包含用户需要的小时数。现在价格由javascript计算,如下所示。

如果用户选择 1,则价格应为 $x x 1; 2 小时 $x x 2 5 小时 $y x 5 等

使用 $x 和 $y 的原因是每小时的成本在管理端是可编辑的。

我已经检查了表单中的产品字段并获得了价格元素,这些元素是我正在使用 jQuery 更改的元素。我在网上某处了解到价格必须在后端更改。令人沮丧的是,说这话的人没有解释如何实现这一目标。

如何用js动态改变重力形式的价格,并使其被重力形式接受?

这是我操纵价格的 jquery 代码。此脚本引用的表单 UI 可在所附图片中找到。

<script>
    jQuery( function(){
        manipulate_consulation_price();
    } );

    function manipulate_consulation_price(){
        var above_four_hours = jQuery( "[name='above-four_']" ).val();
        var one_to_four_hours_price = jQuery( "[name='one-to-four_']" ).val();
        var hours = jQuery("#input_13_36").val();
        var total = 0; 

        if( parseInt( hours ) <= 4 ){
            total =  parseInt( hours ) * parseInt( one_to_four_hours_price ); 
        } else {
            total =  parseInt( hours ) * parseInt( above_four_hours ); 
        }

        jQuery( '#input_13_19' ).html( "$ "+total+".00" );
        jQuery( '#ginput_base_price_13_19' ).val( "$ "+total+".00" );


        jQuery("body").on( 'change','#input_13_36',function(){
            var hours_ = jQuery(this).val();

            if( parseInt( hours_ ) <= 4 ){
                total_ =  parseInt( hours_ ) * parseInt( one_to_four_hours_price ); 
            } else {
                total_ =  parseInt( hours_ ) * parseInt( above_four_hours ); 
            }
            jQuery( '#input_13_19' ).html( "$ "+total_+".00" );
            jQuery( '#ginput_base_price_13_19' ).val( "$ "+total_+".00" );
        } );

        //input_13_38


        jQuery("body").on( 'change','#input_13_38',function(){
            var hours__ = jQuery( "#input_13_36" ).val();

            if( parseInt( hours__ ) <= 4 ){
                total__ =  parseInt( hours__ ) * parseInt( one_to_four_hours_price ); 
            } else {
                total__ =  parseInt( hours__ ) * parseInt( above_four_hours ); 
            }
            jQuery( '#input_13_19' ).html( "$ "+total__+".00" );
            jQuery( '#ginput_base_price_13_19' ).val( "$ "+total__+".00" );
        } );


    }
</script>

enter image description here

从上面的脚本中,您还会注意到还有另一个字段或输入字段 #ginput_base_price_13_19,这是一个带有价格的隐藏字段。我不知道它的用途,我只是使用了检查器工具,发现它隐藏了并且包含价格,所以我决定也用 js 更新该输入。

当我尝试提交表单时,动态价格被拒绝。任何有解决此问题的方法的人。

请注意,我清楚地知道重力表单网站上有一个名为条件定价的插件或类似的东西,但该插件太贵了,我现在买不起。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。