【发布时间】:2014-01-21 05:50:01
【问题描述】:
我们有一个包含多个表单的网络应用程序,其中大多数包含几十个字段。现在,我们使用表单中输入的数据创建 json 对象,并将这些对象发送到 REST 服务,然后将这些数据保存到 NoSQL 数据库 (MongoDB)。
目前,我们正在使用 jquery-validator 在客户端执行验证。但是,我们需要使用相同的 JSONSchema(在客户端和服务器端)验证数据。
有没有办法使用 jquery-validate(或其他类似插件)来做到这一点?我在想也许有一种方法可以用 JSONSchema 文件替换为 jquery-validate 定义的“规则”。
我尝试过使用“Alpaca”,它可以使用 JSONSchema 生成和验证表单,但我遇到的问题是 Alpaca 无法处理嵌套的 json 对象,我有很多,它似乎只适用于简单的 json 结构。
任何帮助将不胜感激。
更新
假设我有以下 jquery-validate 规则(出于示例目的相当简单):
$('#formId').validate({
rules: {
firstField: {
required: true
},
secondField: {
required: true,
maxlength: 80
}
}
});
我有以下 JSONSchema 文件:
{
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"additionalProperties": false,
"description": "MyJsonSchema",
"properties": {
"firstField": {
"description": "some text here",
"type": "string",
"maxLength": 15,
"required": true
},
"secondField": {
"description": "some text here",
"type": "string",
"maxLength": 80,
"required": true
}
}
}
我想做的是找到一种方法来替换 jquery-validate 插件中的“规则”,而不是只读取 JSONSchema 属性,以便我在 JSONSchema 文件中拥有所有表单的验证规则(其中我可以用于客户端和服务器端验证)而不是为每个表单编写规则。
有什么办法吗?
正如我之前所说,使用 AlpacaJS 之类的工具可以渲染和验证 JSONSchema 文件中的表单,但我无法将 Alpaca 用于更复杂的 json 结构。
【问题讨论】:
-
您将不得不展示一些代码示例并提出更具体的问题。就目前而言,您的问题太宽泛了。
-
最简单的方法可能是extract the form data as an object - 然后您可以使用您选择的任何 JSON Schema 库来验证这一点。
标签: json jquery-validate jsonschema