使用复杂对象进行骨干验证

时间:2014-08-29 15:11:04

标签: javascript validation backbone.js backbone.validation.js

我无法让Backbone.Validation处理复杂的对象验证。根据文件:

  

还支持验证复杂对象。配置验证   对象的规则,在属性的名称中使用点表示法,例如   ' address.street'

我采用了示例小提琴并添加了一个复杂的对象,但我无法使其工作。

var SignUpModel = Backbone.Model.extend({
    defaults: {
        terms: false,
        gender: '',
    },
    validation: {
        username: {
            required: true
        },
        email: {
            required: true,
            pattern: 'email'
        },

        // complex object
        'address.zip': {
            required: true
        },

它看起来像输入元素名称中的点符号,因为我收到此错误:

Uncaught Error: Syntax error, unrecognized expression: [name=address.zip] 

Have a look at the fiddle here.

1 个答案:

答案 0 :(得分:0)

如果我没错,属性名称不接受(。),那么你就不能拥有这个名字。但我并不害羞。

当文档说明"也支持验证复杂对象。要配置对象的验证规则,请在属性名称中使用点表示法,例如' address.street'"。我猜这个地址有一个名为street的属性。这真的很有意义。

将属性名称更改为" address-zip"工作。

希望它有所帮助。

此处有关属性名称的更多参考。 What characters are allowed in an HTML attribute name?