Почему мой метод focus () в JS не может быть обработан как событие onfocus? - PullRequest
0 голосов
/ 05 ноября 2018

Дом:

<input id="bankCardInput" type="text"  onfocus="console.log('inputBox is focused');" v-model="AcctNo" v-change="CardBinQry2()" v-blur="CardBinQry()"  maxlength="19" style="width: 70%;">

JS:

$scope.CardBinQry2 = function () {
    if (!$scope.AcctNo) {
        return;
    }
    var params = {
        "AcctNo": $scope.AcctNo
    };
    if ($scope.AcctNo.length < 16) {
        $scope.BankExist = false;
        $scope.BankName = '';
        return;
    }
    $remote.post("BankAmericardQuery.do", params, function (data) {
        if (data.resultMap.BankName.indexOf('银行') > -1) {
            $scope.BankName = data.resultMap.BankName;
            $scope.BankExist = true;
        }
        setTimeout(function () {
            var input = document.getElementById('bankCardInput');
            input.focus();
        },1000)
    },function (error) {
        if (error.jsonError[0]._exceptionMessageCode == "not.supported.by.the.bank.card")
            $scope.BankName = "卡不支持";
    })
};

каждый раз method метод CardBinQry2 () запускается успешно, я хочу увидеть журнал «inputBox is focus», но это не так. Кто-нибудь говорит мне, почему?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете сделать это функцией

  setTimeout(function () {
    callback()
  },1000)
  function callback() {
    var input = document.getElementById('bankCardInput');
    input.focus();
  }
...