【问题标题】:Orbeon: form validation in Form BuilderOrbeon:表单生成器中的表单验证
【发布时间】:2013-01-09 11:06:26
【问题描述】:
  1. 我使用了电子邮件地址控件,但是如何在源代码中使用 xforms:email 数据类型:

    <xsd:simpleType name="email">
      <xsd:restriction base="xsd:string">
        <xsd:pattern value="[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*@[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+(\.[A-Za-z0-9!#-'\*\+\-/=\?\^_`\{-~]+)*"/>
      </xsd:restriction>
    </xsd:simpleType>
    

    XForms 支持这一点,但是如何在 orbeon 表单生成器生成的源代码中使用呢?

  2. 假设一个候选名称,如果用户不提供它应该显示错误消息丢失或不正确的值那很好。但是如果用户输入超过 30 个字符,它应该会显示错误消息“超出最大长度”。

    但我们无法明确知道该做什么。您能否通过编辑我现在发送的源代码来做到这一点,以便我们可以在我们的应用程序中使用它并且我们可以了解它是如何工作的。

    您能否帮我们发送这两件事的示例代码,以便我们可以通过编辑从 Form Builder 生成的源代码来使用它?

【问题讨论】:

    标签: orbeon


    【解决方案1】:
    1. 如果您在构建器的验证属性中使用“电子邮件地址”类型,表单构建器会将xforms:email 类型放在与控件关联的xforms:bind 元素上,如下所示:

      <xforms:bind id="my-email-bind" name="my-email" ref="my-email" type="xforms:email"/>
      

      您可以通过使用“编辑源”检查表单的源来查看这一点。因此,您不必自己显式输入 xforms:email 类型。

    2. 目前,您无法轻松地从构建器中为控件提供多个错误消息。你当然可以:

      1. 使控件成为必需的:“验证属性”→“是”
      2. 检查其长度:string-length() le 30 在“验证属性”→“约束”下

    【讨论】:

    • 好的。但是在表单生成器中只有@验证存在例如:-如果我将 Sample 作为电子邮件的输入,它将显示错误消息,但如果我 gice Sample@orbeon 它显示有效输入...如果我以 Sample@orbeon 的形式提供输入,它应该显示错误消息,如果我以 Sample@orbeon.com 的形式提供输入,那么它应该是有效的...... Orbeon 表单构建器不支持此验证...如何实现此验证?
    • 电子邮件验证是hard,例如this other SO question。 Orbeon Forms 使用 XForms 1.1 规范中的 regpx。您可以使用constraint="matches(., 'your regexp here')" 之类的东西来使用自己的正则表达式
    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2021-01-08
    相关资源
    最近更新 更多