我正在尝试将 woocommerce 结账中的“业务”字段设置为必填项,但前提是该字段实际显示。
我使用 woocommerce_form_field 创建了一个单选按钮字段,它显示两个选项。使用 javascript,当选中单选按钮时,我切换“业务”输入字段的可见性:
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 上的字段的行为方式相同(未选中复选框时不需要),但我无法理解它。
最佳答案
如果检查仅在客户端进行,那么您可能希望将其从 DOM 中删除,而不是使用 display: none;
隐藏它。当您需要它时,您可以再次附加它。您已经拥有了它的切换开关。
关于jquery - 仅当 Woocommerce 结帐字段可见时才需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099094/