CodeHow для вызова ng-blur перед щелчком ng для мобильных браузеров - PullRequest
0 голосов
/ 06 февраля 2020

В моем приложении у нас есть текстовое поле и кнопка на одной странице. мы извлечем детали через ng-blur этого текстового поля, а затем мы проверим те значения, которые получены из ng-blur в функции Button ng-click.

Но ng-click срабатывает перед ng-blur, когда клиент непосредственно нажимает эту кнопку после ввода значений в текстовое поле.

Хорошо работает в настольных браузерах, которые вызывают ng-blur перед нажатием ng-click. Но не работает для мобильных браузеров. Я гуглил решение для этого, но я не получил решение. Извините за мой английский sh, пожалуйста, сообщите нам, если у кого-нибудь есть решение.

Html Код:

<input type="text" ng-model="txndata.txnNo" id="txnNo" 
       ngomitsplchar class="form-control"
       on-blur="getTxnData(txndata)" 
       tabindex="5" spellcheck="false" autocomplete="nope">


<button type="button" class="btn btn-primary btn-md" tabindex="17" 
        id = "validate" class="btn but_small1"
        ng-click="validate(txndata);">Enquiry</button>

JS Код:

$scope.getTxnData = function (formObj) {
    // Ajax call and other process
}

$scope.validate = function (formObj) {
    // Validation and submit process
}

1 Ответ

0 голосов
/ 06 февраля 2020

Попробуйте решить ее, используя javascript, а не находите решение по angular событиям. Измените свою функцию проверки таким образом.

this.validate= function($event) {
    // do something else
    $event.stopPropagation();
    $event.preventDefault();
};

* preventDefault и stopPropagation не позволят ng-click запускать напрямую.

Еще один способ решить - использовать директивы.

.directive('stopPropagation', function () {
    return {
        restrict: 'A',
        link: function (scope, element) {
            element.bind('click', function (e) {
                return false;
            });
        }
    };
});

Подробное описание можно увидеть здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...