正如@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;
}