一旦用户离开现场,就会显示AngularJS Bootstrap Tooltip以进行客户端验证

时间:2014-10-29 19:48:29

标签: javascript angularjs twitter-bootstrap

请注意,我已经阅读了Enable angular-ui tooltip on custom events,而在关闭时,我并没有完全按照自己的意愿行事。

就我而言

http://plnkr.co/edit/12R5eIj2v8nEj8LNVKr1?p=preview

需要以某种方式根据实际错误更新错误消息(我的代码只包含未满足最小长度的消息)。此外,当他们第一次进入时,想以某种方式弹出一个不同的工具提示,以便在填写表格时提供一些有用的建议。

这是我想要的(至少)

  1. 用户点击或标记字段,例如密码,然后开始输入。他只键入四(4)个字符,然后选择字段。因为四个小于我们的最小值八(在输入上由ng-minlength =“8”强制执行),工具提示应显示在字段的右侧。
    1. 此工具提示应保持可见,直到用户更正其错误为止;他不应该离开场地让工具提示消失。
    2. 如果用户离开该字段,工具提示应保持可见(直到他重新访问/更正错误)。
  2. 如果适用,应在工具提示中显示其他错误,例如密码太长,不包含正确的字符等。
    1. 假设用户有8个字符,但它们都是小写的(并且模式需要混合使用大写,小写和数字) - 工具提示应该是“您的密码必须包含至少一个以下内容:小写字母,大写字母和数字。“
    2. 目前使用基线AngularJS验证的方式是在<p ng-show="formName.password.$error.pattern"之外添加<p ng-show="formName.password.$error.minlength" class="help-block">等内容。
  3. 这里有好消息

    1. 带有错误的字段(因此工具提示显示在右侧)将显示为红色边框。
    2. 对于需要解释的字段,输入字段后会立即显示另一个/不同的信息工具提示;用户不必键入任何内容,也不必在显示此工具提示之前离开该字段。
      1. 此工具提示将简单解释用户应该在该字段中执行的操作,例如,“您的密码应至少为8个字符,并且必须至少包含以下其中一项:小写字母,大写字母和数字“。解释是可选的,并非所有字段都有。
      2. 请注意,这与错误文本类似,相同的文字。当长度出错时,我们会说,例如,“您的密码必须至少为8个字符。”
    3. 编辑:显然,一位评论者并不清楚我是否已经尝试过这样做并且失败了。在我发布的链接中(即“自定义事件上的Enabled angular-ui工具提示”),有一个示例工具提示触发器,内容为:tooltip-trigger="{{{true: 'mouseenter', false: 'never'}[myForm.username.$invalid]}}"。正如我在该问题中所评论的那样,问题是用户必须单击返回到该字段才能看到工具提示。相反,它应该是直观的,一旦用户离开现场就会出现。

1 个答案:

答案 0 :(得分:0)

  

相反,它应该是直观的,一旦用户离开就会出现   该领域。

然后使用blur代替焦点:

tooltip-trigger="{{{true: 'blur', false: 'never'}[registerForm.password.$invalid]}}"

您还可以使用keyup在场上时立即显示它,但它不是那么顺利,因为它会不断重新渲染(使用ng-model-options去抖可以缓解一点)