【发布时间】:2016-01-10 23:49:47
【问题描述】:
我正在尝试将 woocommerce 结帐中的“业务”字段设为必需,但仅当该字段实际显示时。
我使用 woocommerce_form_field 创建了一个单选按钮字段,该字段显示两个选项。使用JavaScript I切换“Business”输入字段的可见性,当检查单选按钮时:
jQuery(document).ready(function () {
$('input[type=radio][name=customer_type]').on('change', function () {
$('.checkout-bedrijfsnaam').slideToggle();
}); });
“业务”输入的默认 css 是:
.checkout-bedrijfsnaam { display:none; }
我还使用 Woocommerce 过滤器“woocommerce_billing_fields”和“woocommerce_shipping_fields”创建了所需的“业务”字段:
$address_fields['billing_company']['required'] = true;
这一切都很好,但是:当“业务”字段被关闭且未显示时,我收到“必填字段”警告并且无法提交表单。是否可以将字段设为必填,但仅在实际显示时?
我知道必须如此,因为 shipping_fields 上的字段的行为方式相同(未选中复选框时不需要),但我无法理解它。
【问题讨论】:
-
然后尝试有条件地创建该文件,这将使您的工作完成,或者如果它有任何过滤器,请尝试使用它来有条件地要求它。
-
该字段是在服务器端创建的,条件是客户端(选择了哪个单选按钮),所以我认为这不是一个选项
-
现在我正在使用“woocommerce_checkout_process”操作来进行服务器端验证并在验证失败时调用 wc_add_notice。但这样做的缺点是 UI 不一致(没有星号/红色边框表示该字段是必填的)
标签: jquery wordpress woocommerce required