Angular.JS下Input在iOS钟无法聚焦(失去焦点)?
问题描述
在iOS下,所有的输入框都无法输入,需要长按输入框才能输入。
点击输入框时能够弹出键盘,但是没有光标。在点击的一瞬间是有光标的,但是一松开光标就消失了。只有长按输入框才能成功聚焦,正常输入。
有想过这个问题可能根本不是没有聚焦,因为点击的一瞬间是有光标的。但是随后就消失,猜测可能是什么原因导致焦点丢失,无奈本人水平实在太水,没能找到答案。还望各路大神帮忙看看情况。
问题出现的环境背景及自己尝试过哪些方法
Angular.JS的版本是1.6的。。。很多年的老项目了,页面太多不敢轻易替换版本。
安卓和PC上均无此问题。iOS 12.2及以上版本就有这个情况。百度过说可能是因为Input绑定了ng-click。但是我检查了发现并没有这个东西。。。
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
<div class="commentDialog {{isShowComment?'commentDialog':'ng-hide'}}">
<div class="dialogBoard">
<div class="title">
发表评论
</div>
<div class="rate">
<div class="fadeButton {{actived0?'actived':''}}" ng-click="rate(0)">
较差
</div>
<div class="fadeButton {{actived1?'actived':''}}" ng-click="rate(1)">
一般
</div>
<div class="fadeButton {{actived2?'actived':''}}" ng-click="rate(2)">
良好
</div>
<div class="fadeButton {{actived3?'actived':''}}" ng-click="rate(3)">
优秀
</div>
<div class="fadeButton {{actived4?'actived':''}}" ng-click="rate(4)">
完美
</div>
</div>
<div class="commentField">
<textarea rows="7" id="commentField" ng-model="comment" style="color:#333;width: 98%"
placeholder="请输入评论内容(限200字)" maxlength="200" id="doComment"></textarea>
</div>
<div class="bottom">
<div>
<div flex layout="row">
<div layout="row" layout-align="row">
<div flex="50" layout="row">
<div style="width: 50%;" class="like-btn" flex layout="row" layout-align="center"
ng-click="onCancleComment()">
<div style="line-height: 42px;">取消</div>
</div>
</div>
<div flex="50" class="comment-btn" layout="row" layout-align="center"
ng-click="submitComment()">
<div style="line-height: 42px;">提交</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
这个是完整的输入框部分代码。出现问题的不只是这个页面,也不止是textarea,所有需要输入的地方都出现了这个问题
// 提交评论,先对必填项进行验证
$scope.submitComment = function () {
if ($scope.rated != undefined) {
if ($scope.comment != undefined && !$scope.comment.match(/^\s*$/)) {
$scope.commentObj = {
"dailyReportId": $scope.id,
"commentLevel": $scope.rated,
"commentContent": $scope.comment
};
if ($scope.comment.length > 200) {
$mdToast.show(
$mdToast.simple()
.textContent("评论内容超出限制")
.position("top right")
.hideDelay(2000)
);
} else {
VisitService.submitComment($scope.commentObj).then(function (response) {
if (response.data.data == "success") {
$mdToast.show(
$mdToast.simple()
.textContent("评论成功")
.position("top right")
.hideDelay(2000)
);
}
$scope.isShowComment = false;
$scope.wannaComment = false;
location.reload();
});
}
} else {
$mdToast.show(
$mdToast.simple()
.textContent("请输入评论内容")
.position("top right")
.hideDelay(2000)
);
return;
}
} else {
$mdToast.show(
$mdToast.simple()
.textContent("请选择评论等级")
.position("top right")
.hideDelay(2000)
);
return;
}
};
这是提交按钮,也是整个框框中仅有的一处事件的代码
你期待的结果是什么?实际看到的错误信息又是什么?
控制台未报出任何错误,PC和安卓均无法复现这个情况。要怎么做才能让iOS也能顺利聚焦?这个问题是因为什么原因而造成的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论