Closed lianqin7 closed 11 years ago
代码如下:
// 非email规则 Validator.addRule('notEmail', Validator.getRule('email').not()); Validator.setMessage('notEmail', '不能输入email!'); // 某个字段添加rule validator.addItem({ element: '[name=subject]', required: true, rule: 'notEmail', errormessageNotEmail: '特殊的错误提示不会显示!' });
在subject字段输入email内容后,错误提示会出现,但是不会出现个性化定制的提示特殊的错误提示不会显示!,而是统一提示不能输入email!'
特殊的错误提示不会显示!
不能输入email!'
代码追踪后发现是item.js的66行这里有问题
_metaValidate(this.element, this.get('required'), rules, this.get('display'), function(err, msg) { if (err) { var message = that.get('errormessage') || that.get('errormessage' + upperFirstLetter(err)) || msg; } else { var message = msg; } that.trigger('itemValidated', err, message, that.element); callback && callback(err, message, that.element); });
err本来在校验不通过对时候要返回ruleName,比如上面代码的notEmail,但结果在通过not方式由rule:email生成的rule:notEmail的校验过程中,err返回的是true,导致'errormessage' + upperFirstLetter(err)的结果不正确
err
notEmail
not
true
'errormessage' + upperFirstLetter(err)
具体原因没有继续追踪查找
谢谢反馈,已经在 0.9.1 开发版中修复。抱歉这么久才处理。
代码如下:
在subject字段输入email内容后,错误提示会出现,但是不会出现个性化定制的提示
特殊的错误提示不会显示!
,而是统一提示不能输入email!'
代码追踪后发现是item.js的66行这里有问题
err
本来在校验不通过对时候要返回ruleName,比如上面代码的notEmail
,但结果在通过not
方式由rule:email生成的rule:notEmail的校验过程中,err返回的是true
,导致'errormessage' + upperFirstLetter(err)
的结果不正确具体原因没有继续追踪查找