序列化dojox.validation.check配置文件对象

时间:2013-09-19 00:44:41

标签: validation web-applications serialization dojo dijit.form

我正在构建一个页面,该页面以编程方式填充包含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)形式验证约束?

1 个答案:

答案 0 :(得分:2)

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

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