2015-10-13 24 views
6

我正在尝试使woocommerce结帐所需的“业务”字段,但只有在该字段实际显示时才需要。只有在可见的情况下才需要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; } 

此外,我提出了“业务‘:

$address_fields['billing_company']['required'] = true; 

这一切都很顺利,但是:当‘生意’字段是togg woocommerce_billing_fields‘和’woocommerce_shipping_fields“使用Woocommerce滤波器所需的字段’没有显示,我得到一个“必填字段”警告,无法提交表单。是否有可能使该领域需要,但只有当它真正显示?

我知道它是必须的,因为shipping_fields上的字段的行为方式相同(不勾选复选框时不需要),但我无法理解它。

+0

然后尝试创造有条件地提交,这将使你的工作完成,或者如果它有任何过滤器,尝试使用它有条件地要求。 –

+2

这个字段是在服务器端创建的,条件是客户端(选择了单选按钮),所以这不是我想要的选项 – Marc

+0

现在我使用'woocommerce_checkout_process'动作来执行服务器端验证,并在验证失败时调用wc_add_notice。但缺点是UI不一致(没有星号/红色边框来表示该字段是必需的) – Marc

回答

0

如果检查只是客户端,那么不要用display: none;来隐藏它,你可能想从DOM中删除它。当你需要它时,你再次追加它。你已经有这个切换。

相关问题