2

我正在构建一个页面,该页面基于从服务器传递的数据以编程方式填充包含 dojox.form.ValidationTextBox 小部件的表单。这些小部件需要在提交表单之前进行验证,但我们目前没有办法让服务器传达验证约束。

序列化与 dojox.validate.check 一起使用的配置文件对象似乎是最合适的,但该结构并不完全对序列化友好。传递给 dojox.validation.check 的配置文件对象应具有以下格式:

 profile: {
      required: [fieldName1],
      constraints: {
           fieldName1: [[validationFunc1, constraintArg1, constraintArg2], [validationFunc2, constraintArg3, constraintArg4]]
           fieldName2: validationFunc3
      }
      .
      .
      .
 }

由于配置文件对象包含函数,我们不想按原样使用它。我正在考虑只是序列化函数的名称以代替函数本身,但这会引入一些紧密的客户端耦合,因为 dojo AMD 加载程序不应该有任何全局变量名称。

客户端和服务器之间是否有更标准的通信方式(最好使用 dojo)表单验证约束?

4

1 回答 1

2

dojox.validate.check 验证配置文件不允许指定自定义字段的无效消息。例如,假设您使用 dojox.validate.isText 作为一个验证函数,为其提供诸如“maxlength”和“minlength”之类的约束,您将不会收到自定义的“无效”消息,这些消息会显示类似“不能超过字符长”,如果它太长,或者“必须比字符长”,没有大量代码来管理它。

我建议查看其他客户端 javascript 验证框架,例如 Regula 或 JQuery Validator,并使用可以更好地与这些解决方案之一配合使用的字段约束交换格式。

于 2013-09-24T16:15:23.220 回答