Обрабатывать события клика - PullRequest
0 голосов
/ 18 марта 2019

Я создаю переключатель, который фокусирует ввод, когда я нажимаю кнопку, и размывает его, когда я нажимаю за пределами ввода или второй раз на кнопке.

Моя единственная проблема - когда я нажимаю за пределами ввода, мне нужно дважды щелкнуть по кнопке, чтобы снова сфокусировать ввод.

Моя функция

let isFocused = false
const blurAlias = () => {
  document.getElementById('aliasInput').blur()
  document.getElementById('aliasInput').setAttribute("disabled", true);
}
const focusAlias = () => {
  isFocused = !isFocused

   if ( document.activeElement === document.getElementById('aliasButton')) {
      document.getElementById('aliasInput').removeAttribute("disabled")
      document.getElementById('aliasInput').focus();
      document.getElementById('aliasInput')
      .addEventListener("keyup", function(event) {
        if (event.keyCode === 13) {
        event.preventDefault();
        blurAlias()
        }
    });
    }
  }

Мой HTML:

<input disabled class="break-word mb-0 editAliasInput" 
       data-ng-value="ext.helpers.handleAlias($ctrl.state.accounts.accountDetails)" 
       id="aliasInput" maxlength="35" 
       onkeypress="this.style.minWidth = ((this.value.length + 1) * 12) + 'px'"
       onblur="setAttribute('disabled', true)">
<button class="editAliasButton" ng-click="ext.helpers.focusAlias()" 
        id="aliasButton"><i class="fas fa-edit"></i>
</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...