aralejs / validator

Form Validator Widget
aralejs.org/validator/
41 stars 28 forks source link

组合规则错误提示显示的问题 #26

Closed lileiseven closed 11 years ago

lileiseven commented 11 years ago

假如“昵称(nickname)”的规则是这样的: 只可以中文,2-7个字。

且规则库有"chinese"这个规则。

那么我的nickname规则是这样的:

Validator.addRule(
    'nickname', 
    Validator.getRule('chinese').and('minlength', {min:2}).and('maxlength',{max:7})
    '昵称格式不正确'
);

我希望用户输入"aaa"时,显示"chinese"这条规则的错误提示信息,用户输入“王"时,显示"minlength"这条错误提示信息。

目前无论哪条规则判断失败出现的都是规则"nickname"的错误提示信息。

hotoo commented 11 years ago

我觉得一个表单项的合法性校验提示中,应该一次性完整的描述这个表单项的规则。

比如你的这个,规则描述大致应该这样: 昵称必须是长度在 2 到 7 之间的中文字符串。

试想下如果对不同的规则都做错误消息的情形:

  1. 填了非中文,提示要输入中文;
  2. 填了一个中文,提示昵称太短,要输入 2 个以上;
  3. 然后用户想了一个很长的昵称,又提示说太长了。

这样的结果是看起来表单校验好像功能很强大很精细,但实际上给用户带来的体验并没有提升。

所以我觉得校验的错误信息就应该只需要简洁完整的一个就可以了。

afc163 commented 11 years ago

同意 @hotoo