Wordpress联系表格7收音机不需要

时间:2017-08-14 09:38:29

标签: wordpress radio-button contact-form-7

我有一个包含少量字段的表单以及一个单选按钮。此单选按钮是可选字段。但如果我没有从单选按钮中选择任何选项,我就无法提交表格。

<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”]

关于使用没有项目默认的单选按钮的任何想法。

5 个答案:

答案 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"]

此选定的第一个选项未显示在前端(以及生成的邮件),并且在验证中有效地不需要复选框。