验证撇号cms中的布尔字段撇号-提交小部件

时间:2019-02-22 14:15:25

标签: javascript validation apostrophe-cms

我正在尝试使用apostrophe-pieces-submit-widgets构建一个简单的联系表单,并且需要对GDPR进行打勾。我设置了一个请求表单模块:

module.exports = {
  extend: 'apostrophe-pieces',
  name: 'request-form',
  label: 'Request Form',
  alias: 'requestForm',
  addFields: [
    ...
    {
      name: 'gdpr',
      label: 'Marketing agreement',
      type: 'boolean',
      required: true
    }
  ],
  //stuff like building title field and marking it as published when it's saved
  ...
}

然后我使用apostrophe-pieces-submit-widgets显示它:

module.exports = {
  extend: 'apostrophe-pieces-submit-widgets',
  fields: ['name', 'email', 'phone', 'gdpr']
}

它在视觉上起作用,也就是说,它带有一个星号,you,您仍然可以发送表单而无需将其切换到Yes。当您不填写其他必填字段时,就不会像其他字段一样在返回的错误对象中提及该字段。我需要做些什么来验证它?

2 个答案:

答案 0 :(得分:1)

您现在可以通过为字段设置mandatory: true选项来实现此目的。

答案 1 :(得分:0)

除非我有误解,否则撇号验证一个布尔值(允许为No / false),它不是您要允许的值。在这种情况下,boolean字段实际上不会削减它。

我不认为您将如何利用现有的架构字段实现这一目标。

您可以通过遵循这套教程来创建自己的架构字段(可以根据需要验证它们)。 https://apostrophecms.org/docs/tutorials/intermediate/custom-schema-field-types.html

colorpicker示例有点复杂,通过Apostrophe源代码查找并以新名称复制布尔型字段类型可能会更容易,并强制该值是真实的以便进行验证。您所需的一切都在apostrophe-schemas模块中。