使用jquery-validate(或类似)和JSONSchema来验证表单

时间:2014-01-03 14:19:35

标签: json jquery-validate jsonschema

我们有一个包含多个表单的Web应用程序,其中大部分都有几十个字段。现在我们使用在表单中输入的数据创建json对象,并将这些对象发送到REST服务,然后将这些数据保存到NoSQL数据库(MongoDB)中。

目前,我们使用jquery-validator在客户端执行验证。但是,我们需要使用相同的JSONSchema验证数据(在客户端和服务器端)。

有没有办法使用jquery-validate(或其他类似的插件)来做到这一点?我想也许有办法用JSONSchema文件替换为jquery-validate定义的“规则”。

我尝试使用“Alpaca”,它可以使用JSONSchema生成和验证表单,但我遇到的问题是它无法处理嵌套的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文件中渲染和验证表格,但是我无法使用更复杂的json结构的羊驼。

1 个答案:

答案 0 :(得分:0)

JavaScript中有几个JSON Schema验证器。看JSON Schema Software页面。

该页面上缺少JSON Form,它可以生成表单并对其进行验证(使用JSV)。