javascript - 通过 javascript 显示和隐藏引导工具提示

标签 javascript angularjs tooltip

我有一个使用 ui.bootsrap 工具提示功能的东西,代码工作正常,但我不知道通过脚本显示和隐藏工具提示,说我有一个表单,当我提交表单,如果组件的验证说(电子邮件的文本字段)失败,那么它应该显示一个工具提示,除非该字段被正确验证,否则它不应该出现,

谁能告诉我一些解决办法

脚本

var app = angular.module('someApp', ['ui.bootstrap']);

app.controller('MainCtrl', function ($scope) {

    $scope.validate = function () {
        var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        var emailValid = re.test($scope.userEmail);
        if(!emailValid)
        {
            // I want to show the tool tip
        }
    };

})

html

<div ng-app="someApp" ng-controller="MainCtrl">
    <form ng-submit="validate()">
        <input type="text" ng-model='userEmail' rc-tooltip="Invalid Email...." tooltip-placement="bottom" />
        <input type="submit" />
    </form>
</div>

JSFiddle

最佳答案

Demo

这是一个使用 Bootstrap 的简单电子邮件验证指令:

app.directive('email', function() {
  return  {
    restrict: 'A',
    require: 'ngModel',
    compile: function(element, attr) {
      element.tooltip({ placement: 'right', title:'Email is invalid', trigger:'manual'});
      function emailValid(email) {

        var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
         var valid = re.test(email);
         return valid;

      }
      return  function(scope, element,attr, ngModel) {
          ngModel.$validators.email = function(val) {
            return emailValid(val);
          }

          scope.$watch(function() {
            return ngModel.$error.email;
          }, function(val) {
            if (val)
               element.tooltip('show');
            else
               element.tooltip('hide');

          });
      }
    }
  }
});

用法

<input type="text" ng-model="email" email  />

关于javascript - 通过 javascript 显示和隐藏引导工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29642698/

相关文章:

javascript - react native 获取()不工作

javascript - 使用 jQuery 中的自定义属性获取特定元素

javascript - 使用 AngularJS 输出 JSON

javascript - 鼠标离开时工具提示文本突然添加到阿拉伯文本中

twitter-bootstrap - 通过将鼠标悬停在另一个元素上来触发 Bootstrap 工具提示

python - 带有空格或特殊字符的 Bokeh 工具提示名称

javascript - ngx-cookie - 服务器端渲染中的空白 cookie 对象

javascript - 尝试添加到根父节点时出现 KendoUI 未定义节点问题

javascript - 没有模板的 AngularJS $location

angularjs - 无法找到合适的 Angular 版本