为什么JS中的focus()方法不能作为onfocus事件处理



Dom:

<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 = "卡不支持";
})
};

每次CardBinQry2((方法成功运行时,我都想看到日志"inputBox is focused",但它没有。有人告诉我为什么吗?

您可以将其作为函数

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

最新更新