gpt4 book ai didi

javascript - 主干验证问题

转载 作者:行者123 更新时间:2023-11-28 08:49:35 25 4
gpt4 key购买 nike

我使用了 Backbone 验证插件(可从: https://github.com/thedersen/backbone.validation 获取)。我还使用了 Bootstrap 3。我想验证 onChange 或 onBlur 事件。

我这样使用它:

在 Models.js 中,我有这样的规则:

   validation: {
miliage: {
required: true,
pattern: 'number',
msg: 'Укажите корректный пробег'
},
email : {
required: true,
pattern: 'email',
msg: 'Укажите корректный email'
},
},

在渲染 html 后的 Views.js 中,我绑定(bind)了验证插件:

Backbone.Validation.bind( this, {
valid: function( view, attr, selector ) {
console.log('valid');
console.log( attr );
control = view.$('[' + selector + '=' + attr + ']')
group = control.parents(".form-group")
group.removeClass("has-error");
group.find(".help-block").remove();
},
invalid: function( view, attr, error, selector ) {
console.log('invalid');
console.log( attr );
control = view.$('[' + selector + '=' + attr + ']');
console.log( control );
group = control.parents(".form-group");
group.addClass("has-error");
group.find(".help-block").remove();
group.append("<span for="+attr+" class='help-block'>"+error+"</span>");
}

});

我使用 Bootsrap 规则显示错误消息。

在这个 View 中,我有这样的事件:

 "change #email"     : "setEmail",
"change #miliage" : "setMiliage",

以及适当的函数(我相应地为模型设置值):

setMiliage : function( event ) {       
console.log( $( event.currentTarget ).val() );
this.model.set('miliage', $(event.currentTarget).val(),{validate : true});
},
setEmail : function( event ) {
this.model.set('email', $(event.currentTarget).val(),{validate :true})
},

如您所见,我将参数 validate:true 传递给方法集 - 以便每次 onChange 事件触发时进行验证

问题:对模型的每个方面(所有属性)执行验证,这就是回调函数有效无效的原因触发验证规则中定义的每个属性。我有两个或更多字段需要验证,当用户更改其中任何一个字段中的文本时 - 在所有字段中都执行了验证。

示例:当用户第一次打开页面时,“里程”和“电子邮件”字段为空,当他们在第一个字段(里程)中输入值时,另一个字段会显示发生错误 - 因为它仍然是空的(用户尚未输入)并且我只想显示第一个字段的消息。换句话说,当然第二个字段到目前为止是无效的,用户还没有到达那里。

问题:是否有一种方法可以对用户唯一更改的当前字段执行验证,并仅显示与其相关的错误?我还想在模型无效时将值放入模型中 - 我希望它仅显示错误。另外,我想对提交表单执行控件验证(在 Backbone 保存方法之前)

我知道有 isValid(field) 方法,它只能验证一个字段 - 但它不会触发有效或无效事件

提前致谢!

最佳答案

我认为正确的方法是跟踪哪些字段至少更改过一次,并在处理“更改”或“模糊”事件时忽略其他字段上的验证错误。当然,这不适用于处理“提交”,其中不应忽略任何字段

关于javascript - 主干验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19326176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com