Jquery 只有在可见时才需要“电子商务签出”字段

Jquery 只有在可见时才需要“电子商务签出”字段,jquery,wordpress,woocommerce,required,Jquery,Wordpress,Woocommerce,Required,我试图使woocommerce结帐中的“业务”字段成为必需字段,但前提是该字段实际显示 我用woocommerce\u form\u字段创建了一个单选按钮字段,该字段显示两个选项。选中单选按钮时,我使用javascript切换“业务”输入字段的可见性: jQuery(document).ready(function () { $('input[type=radio][name=customer_type]').on('change', function () { $('.checkout

我试图使woocommerce结帐中的“业务”字段成为必需字段,但前提是该字段实际显示

我用woocommerce\u form\u字段创建了一个单选按钮字段,该字段显示两个选项。选中单选按钮时,我使用javascript切换“业务”输入字段的可见性:

jQuery(document).ready(function () {
$('input[type=radio][name=customer_type]').on('change', function () {
    $('.checkout-bedrijfsnaam').slideToggle();
}); });
“业务”输入的默认css为:

.checkout-bedrijfsnaam { display:none; }
此外,我还使用Woocommerce过滤器“Woocommerce\u billing\u fields”和“Woocommerce\u shipping\u fields”设置了所需的“business”字段:

$address_fields['billing_company']['required'] = true;
不过,这一切都很好:当“业务”字段被关闭且不显示时,我会收到“字段是必需的”警告,无法提交表单。是否可以将字段设置为必填字段,但仅当它实际显示时才可以


我知道这是必须的,因为shipping_字段上的字段的行为方式相同(如果未选中复选框,则不需要),但我无法理解它。

如果选中的只是客户端,则使用
display:none隐藏它您可能希望将其从DOM中删除。当您需要它时,您可以再次附加它。您已经有了它的切换功能。

然后尝试有条件地创建该字段,这将完成您的工作,或者如果它有任何筛选器,则尝试使用该字段使其有条件地成为必需的。该字段是在服务器端创建的,条件是客户端(选择哪个单选按钮)因此,我认为这不是一个选项,目前我正在使用“woocommerce\u checkout\u process”操作来进行服务器端验证,并在验证失败时调用wc\u add\u通知。但缺点是UI不一致(没有星形/红色边框表示需要该字段)