AngularJS防止模糊,直到ngDialog确认

时间:2015-06-30 00:15:21

标签: javascript angularjs

我有一堆输入字段,如下所示:

<span style="float:left;"><input type="number" ng-model="discount.amount" price-check /></span>

如果输入的价格太低,我想阻止用户退出输入字段。他们必须填写一个小型表格才能退出现场。如果用户在表单上单击取消,我曾经通过将焦点设置回元素(我认为是ngDialog的默认行为)来使用jquery执行此操作,否则我只是在表单已经确认时让默认事件发生。

我一直在尝试将此转换为angularjs,但我遇到了模糊事件和ngDialog的问题。正常用法是用户填写输入,然后按TAB进入下一个输入。问题是按TAB调用模糊事件打开对话框,但下一个输入(在对话框后面)同时获得焦点,所以一旦我点击对话框,弹出另一个对话框,因为第二个输入被调用它的模糊事件。 当对话框已从先前输入打开时,我需要阻止模糊事件移动到下一个输入。我尝试使用event.preventDefault()和stopPropagation(),但它们似乎没有用。

这是我的指示

customerPricingModule.directive('priceCheck', function () {

return {
    restrict: 'A',
    controller: 'priceCheckController',
    link: function (scope, element, attrs, ctrl) {

        element.on('blur', function (event) {
            //If statement to go here to only open if under a certain price
            ctrl.showDialog(element);

            //when dialog cancelled, focus on the element again
            //Otherwise don't do anything
        });
    }
};

0 个答案:

没有答案