Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

请问auth组件如何设置才能让字段blur时不触发验证,而只在表单submit时才触发? #24

Open
simple-stupid opened this issue Dec 20, 2014 · 2 comments

Comments

@simple-stupid
Copy link

在一个input元素上同时应用了表单验证和自动完成两个组件, input元素blur时触发表单验证, focus时触发自动完成, 当触发自动完成在弹出的div中选择值时又会触发该表单的blur事件,导致弹出验证提示, 想阻止input在blur时触发表单验证, Field对象有个event属性可以用来绑定触发验证的事件,我设置了但是没有效果,在event属性值已改变的情况下blur事件还是会触发, 该如何才能解决呢?
var auth = new Auth('#search-form', {
stopOnError:true
});
auth.plug(new AuthMsgs());
auth.render();
var orgField = auth.field('org');
console.log(orgField.get('event')); //显示blur
orgField.set('event','submit');
console.log(orgField.get('event')); //显示submit

@simple-stupid
Copy link
Author

问题自己解决了, auth组件有个fnConfig配置项可以用来控制field. 对于field的控制是不是只能在初始化阶段完成?为什么上面的会没有效果呢?
var auth = new Auth('#search-form', {
stopOnError:true,
fnConfig:function(filedConfig,$field){
filedConfig.event = 'submit';
return filedConfig;
}
});

@Sefrid
Copy link

Sefrid commented Dec 16, 2015

//修改源码
S.extend(Field, Base, {
_init:function () {
var self = this;
var _cfg = self._cfg;
var $target = self.get('target');
var _ruleCfg = S.merge({}, _cfg.rules);
var autoBind = self.get('host').get('autoBind'); //获取自定义的值
self._groupTarget();
S.each(_ruleCfg, function(ruleCfg, name){
if(!self._storage[name] && Factory.rules[name]) {
self._createRule(name,ruleCfg);
}
});
$target.data(DATA_FIELD,self);
var target = $target.getDOMNode();
self._targetBind(_cfg.event || (autoBind ? Utils.getEvent(target): '')); //判断是否添加默认的事件
self.fire('render');
return self;
},

设置配置项
var auth = new Auth('#J_Auth', {
autoBind: false //此处设置自动绑定为false
});

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants