Backbone.js 对backbone.validation中的单个属性使用验证程序数组时出错

Backbone.js 对backbone.validation中的单个属性使用验证程序数组时出错,backbone.js,backbone-views,backbone-events,backbone-relational,backbone-routing,Backbone.js,Backbone Views,Backbone Events,Backbone Relational,Backbone Routing,我使用两条不同的消息进行两种不同的验证,例如 validation: { email: [{ required: true, msg: 'Please enter Email Id.' }, { pattern: 'email', msg: 'Please enter valid Email id.' }] } 但是,如果我提交表单时没有输入电

我使用两条不同的消息进行两种不同的验证,例如

validation: {
        email: [{
            required: true,
            msg: 'Please enter Email Id.'
        }, {
            pattern: 'email',
            msg: 'Please enter valid Email id.'
        }]
    }
但是,如果我提交表单时没有输入电子邮件值,则会触发第一次验证。如果输入错误,则提交表单时会触发第二次验证


问题是第一个验证没有被删除,也就是说,它仍然显示为“请输入电子邮件Id”。即使该验证没有与旁边的第二个验证一起被第二次触发。

该验证代码看起来非常好,但这只是难题的一部分。我建议查看主干。验证(以及)。这些示例提供了两种不同的方法来处理与您类似的验证规则

下面是让电子邮件验证在“基本”场景中工作的部分。首先,是以下内容的一个片段:

该代码将错误消息添加到电子邮件元素中,或者如果已存在内联错误消息,则替换错误文本

您可以检查更多的代码以了解发生了什么,但关键是模型验证参数只是故事的一部分。其他部分是模板设置和
有效
/
无效
回调

  <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>
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);
}