该验证代码看起来非常好,但这只是难题的一部分。我建议查看 Backbone.Validation示例(以及它们背后的代码)。这些示例提供了两种不同的方法来处理类似于您的验证规则。
以下是使电子邮件验证在“基本”场景中工作的部分。首先,模板的片段:
<div class="control-group">
<label class="control-label" for="email">Email</label>
<div class="controls">
<input type="text" class="input-xlarge" id="email" name="email" data-error-style="inline">
</div>
</div>
请注意,电子邮件输入将“内联”指定为数据错误样式。这会影响到主干.validation.bootstrap.js的默认invalid
回调:
else if (control.data("error-style") === "inline"){
if (group.find(".help-inline").length === 0){
group.find(".controls").append("<span class=\"help-inline error-message\"></span>");
}
var target = group.find(".help-inline");
target.text(error);
}
该代码将错误消息添加到电子邮件元素,或者如果内联错误消息已经存在,则替换错误文本。
您可以检查更多代码以了解正在发生的事情,但关键是模型验证参数只是故事的一部分。其他部分是模板设置和valid
/invalid
回调。