仅在可见时才需要Woocommerce结帐字段

Mar*_*arc 6 wordpress jquery required woocommerce

我正在尝试在woocommerce checkout中建立"业务"字段,但仅限于该字段实际显示的情况.

我创建了一个带有woocommerce_form_field的单选按钮字段,该字段显示两个选项.使用javascript我在选中单选按钮时切换'business'输入字段的可见性:

jQuery(document).ready(function () {
$('input[type=radio][name=customer_type]').on('change', function () {
    $('.checkout-bedrijfsnaam').slideToggle();
}); });
Run Code Online (Sandbox Code Playgroud)

'business'输入的默认css是:

.checkout-bedrijfsnaam { display:none; }
Run Code Online (Sandbox Code Playgroud)

此外,我使用Woocommerce过滤器'woocommerce_billing_fields'和'woocommerce_shipping_fields'创建了所需的"业务"字段:

$address_fields['billing_company']['required'] = true;
Run Code Online (Sandbox Code Playgroud)

然而,这一切都很顺利:当'业务'字段被切换并且没有显示时,我收到'字段是必需的'警告并且无法提交表单.是否有可能使该领域成为必需,但只有当它实际显示时?

我知道必须这样,因为shipping_fields上的字段表现方式相同(未选中复选框时不需要),但我无法理解它.

小智 1

如果检查仅在客户端进行,那么display: none;您可能不想将其隐藏,而是将其从 DOM 中删除。当您需要它时,您可以再次附加它。你已经有了它的切换开关。