我有一个包含少量字段的表单以及一个单选按钮。此单选按钮是可选字段。但如果我没有从单选按钮中选择任何选项,我就无法提交表格。
<div class="input-field-outer">
[text* your-name class:name placeholder "Name or business name*"]
</div>
<div class="input-field-outer">
[email* email placeholder "Email*"]
</div>
<div class="input-field-outer">
[text* contact-number id:telno class:hs-phone-number placeholder "Contact number*"]
<span id="errmsg"></span>
</div>
<div class="input-field-outer">
<div class="radio-outer">
[radio customer_type "New Customer" "Old Customer"]
</div>
</div>
当我将其中任何一个选为默认值时,它将起作用:
[radio customer_type default:1“New Customer”“Old Customer”]
关于使用没有项目默认的单选按钮的任何想法。
答案 0 :(得分:5)
解决方法是使用复选框并添加独占参数。这允许您在不选择客户类型的情况下提交表单。
[checkbox customer_type exclusive "New Customer" "Old Customer"]
答案 1 :(得分:2)
要删除所有无线电字段的验证,请将此添加到functions.php或其他任何位置。
remove_filter('wpcf7_validate_radio', 'wpcf7_checkbox_validation_filter', 10);
如果您想维护部分无线电所需的验证,请将其更改为:
[radio fieldName class:required "Yes" "No"]
然后将此代码添加到functions.php:
remove_filter('wpcf7_validate_radio', 'wpcf7_checkbox_validation_filter', 10);
add_filter('wpcf7_validate_radio', function($result, $tag) {
if (in_array('class:required', $tag->options)) {
$result = wpcf7_checkbox_validation_filter($result, $tag);
}
return $result;
}, 10, 2);
答案 2 :(得分:2)
只需阅读this条评论:
CF7的作者Takayuki Miyoshi认为,默认情况下,单选按钮是必填字段。而且他不是唯一的一个。这个follows W3C’s HTML specifications for radio buttons。
和
如果您不需要任何必需的选项,则可以使用复选框来切换。
因此,构建替代方法不符合W3C的规范,因此可能不是最佳解决方案。
答案 3 :(得分:1)
您可以使用选项选择默认选择的单选按钮
第一台收音机default:1
或第二台收音机default:2
,依此类推。
添加选项default:0
完全符合您的要求。它使所有单选按钮都不被选中。
答案 4 :(得分:1)
Checkbox独占实际上对我不起作用,因为主题的CSS不支持它。
没有为主题添加JS和CSS来支持这个功能,我已经设法通过再使用一个“空”字段克服了无线电的问题:
getTodoitems()
之后在CSS中我添加了:
[radio choice label_first default:1 "" "Yes" "No"]
此选定的第一个选项未显示在前端(以及生成的邮件),并且在验证中有效地不需要复选框。