Skip to content

Bad Usability "ui-percentage-mask="2" + ui-negative-number" #334

Open

Description

@ivanguimam

Using the two directives together, when I focus on input and type the "-" sign before typing any number, it does not let me type any number. For both directives to work together, I need to enter the number first and only then put the minus sign, this to the user is horrible.

<input ng-model="$ctrl.coupon.value" required type="tel" class="form-control custom-input"
max="1" id="value" ui-percentage-mask="2" ui-negative-number ng-disabled="$ctrl.isUpdate">

Activity

  1. ivanguimam commented on Mar 26, 2018

    @ivanguimam
    Author

    Edit the parse function in the src/global/percentage/percentage.js file

    ...
    var actualNumber = parseFloat(modelMask.apply(valueToFormat));
    
    if (isNaN(actualNumber)) { // ADD THIS CONDITION TO FIX THE PROBLEM
        actualNumber = parseFloat(modelMask.apply(value.replace(/[^0-9]/g,'')))
        valueToFormat = PreFormatters.clearDelimitersAndLeadingZeros(value) || '0'
        formatedValue = viewMask.apply(valueToFormat) + percentageSymbol;
    }
    
    if (angular.isDefined(attrs.uiNegativeNumber)) {
    ...
    
  2. lucasjorge944 commented on May 30, 2022

    @lucasjorge944

    I created this fix directive, to apply with percentage directive and solved the problem for me.

    angular.module("nucont").directive("fixInputMask", function () {
        return {
            restrict: "A",
            require: "ngModel",
            link: function (scope, element, attrs, ctrl) {
                element.on("keyup", function (ev) {
                    scope.$apply(function () {
                        if (isNaN(ctrl.$modelValue)) {
                            const value = `-0,${Number(ev.key)}0`;
    
                            ctrl.$setViewValue(value);
                            ctrl.$render();
                        }
                    });
                });
            }
        };
    });
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions