Closed zzjin23 closed 11 years ago
这是因为事件触发的顺序是: input blur -> 旧的校验规则, 显示红色错误提示 -> $('[name=contact]').change 事件 -> 设置新的校验规则, 隐藏了错误提示, 并显示提示
因此出现错误提示一闪而过的现象
能否考虑提供一个blur时exclude的api?例如在addItem时如果将radio配置进exclude,blur时获取focus所在的节点,若为radio则不进行校验(当然希望exclude中可以设置多个节点)。这样既能解决这个问题,同时也兼顾了一个比较偏门的使用场景。
你这个考虑复杂了.
可以考虑下其他的实现:
可以试下, 我本地试了下, 替换 blur 为 keyup, 交互比原来的好些.
文档中的示例只是为了告诉使用者可以使用动态 addItem
和 removeItem
来设置不同的校验规则, 实现的不是很完美
改成keyup交互确实好了很多,也能解决问题,多谢
就拿http://aralejs.org/validator/examples/dynamic-change-validation.html 官方这个例子说吧,首先输入了7位的数字,把radio选到「Mobile」上,然后把focus点到「号码」上,再点击一下「Phone」,这个时候校验「Mobile」的错误提示会一闪而过。
录了一个视频 http://v.youku.com/v_show/id_XNTk4MzUxNjYw.html