我正在使用两种不同的消息进行两种不同的验证,例如
validation: {
email: [{
required: true,
msg: 'Please enter Email Id.'
}, {
pattern: 'email',
msg: 'Please enter valid Email id.'
}]
}
但是,如果我在没有输入电子邮件值的情况下提交表单,则会触发第一次验证,如果提供错误的输入,则提交表单,触发第二次验证。
问题是第一次验证没有被删除,它仍然显示为“请输入电子邮件ID”。即使第二次没有触发验证,第二次也不会触发验证。
答案 0 :(得分:0)
验证码看起来非常好,但这只是拼图的一部分。我建议查看Backbone.Validation examples (以及 code behind them )。这些示例提供了两种不同的方法来处理与您类似的验证规则。
以下是让电子邮件验证工作在" Basic"场景。首先,template的片段:
<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>
请注意,电子邮件输入指定&#34;内联&#34;作为数据错误风格。这会从backbone.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);
}
该代码会向email元素添加错误消息,或者如果内联错误消息已存在,则替换错误文本。
您可以查看更多代码以了解正在进行的操作,但关键是模型验证参数只是故事的一部分。其他部分是模板设置和valid
/ invalid
回调。