9***@qq.com
9***@qq.com
  • 发布:2021-04-21 14:16
  • 更新:2021-04-21 14:16
  • 阅读:528

【报Bug】多个input,使用变量控制焦点正常,手动点击input时却获取不到焦点

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10

HBuilderX类型: 正式

HBuilderX版本号: 3.1.9

第三方开发者工具版本号: 1.05.2102010

基础库版本号: 2.15.0

项目创建方式: HBuilderX

示例代码:
<view class="createClass-listView">  
                <view>年级</view>  
                <input type="text" v-model="classGrader" :focus="gradeFocus" placeholder="输入年级" @confirm="nextFocus('class')" confirm-type="next"  />  
            </view>  
            <view class="createClass-listView">  
                <view>班级</view>  
                <input type="text" ref="class" v-model="className" :focus="classFocus" placeholder="输入班级名称" @confirm="nextFocus('teacher')" confirm-type="next" />  
            </view>  
            <view class="createClass-listView">  
                <view>导师</view>  
                <input type="text" v-model="teacherName" :focus="teacherFocus" placeholder="输入姓名" @confirm="nextFocus('phone')" confirm-type="next" />  
            </view>  
            <view class="createClass-listView">  
                <view>手机号</view>  
                <input type="text" v-model="teacherPhone" maxlength="11" :focus="phoneFocus"  placeholder="输入手机号" @confirm="nextFocus('studentNum')" confirm-type="next" />  
            </view>  
            <view class="createClass-listView">  
                <view>学生数</view>  
                <input type="text" v-model="studentNum" maxlength="7" :focus="studentNumFocus"  placeholder="请输入学生个数" @confirm="confirm()" confirm-type="done" />  
            </view>  

//nextFocus代码:  
nextFocus(inputType){  
                // uni.hideKeyboard();  //隐藏软键盘   
                let that = this;  
                switch(inputType){  
                    case "grade":  
                        this.gradeFocus = false; // 每次都要初始化 focus 属性  
                        setTimeout(() => {  
                            this.$nextTick(function() {  
                                that.gradeFocus=true  
                            });  
                        },50)  
                        break;  
                    case "class":  
                        this.classFocus = false; // 每次都要初始化 focus 属性  
                        setTimeout(() => {  
                            this.$nextTick(function() {  
                                that.classFocus=true  
                            });  
                        },50)  
                        break;  
                    case "teacher":  
                        this.teacherFocus = false; // 每次都要初始化 focus 属性  
                        setTimeout(() => {  
                            this.$nextTick(function() {  
                                that.teacherFocus=true  
                            });  
                        },50)  
                        break;  
                    case "phone":  
                        this.phoneFocus = false; // 每次都要初始化 focus 属性  
                        setTimeout(() => {  
                            this.$nextTick(function() {  
                                that.phoneFocus=true  
                            });  
                        },50)  
                        break;  
                    case "studentNum":  
                        this.studentNumFocus = false; // 每次都要初始化 focus 属性  
                        setTimeout(() => {  
                            this.$nextTick(function() {  
                                that.studentNumFocus=true  
                            });  
                        },50)  
                        break;  
                }  
            }

操作步骤:

手动点击input框时就会出现该问题,需要点击第二次才能获取到焦点。
使用键盘的下一步控制焦点时就能正常获取焦点。

预期结果:

手动点击input框能够正常获取到焦点,并弹出键盘。

实际结果:

手动点击input框第一次点击无法获取焦点,需要点第二次,然后点击其他input框都会出现这样的问题

bug描述:

需要完成的功能:点击键盘右下的下一步按钮切换下一个焦点,到达最后一个input时提交表单,这个功能是实现了也没有任何问题。
问题:但是在我们手动点击input框时就会获取不到焦点,键盘也弹不出来,input框会闪两下,当点击第二次的时候才会获取到焦点,随后我们再手动点击其他input框时又会出现获取不到焦点的问题。
手机说明:ios上没有任何问题,都是可以正常操作,但是Android上都会出现这样的问题,目测我们公司的小米、华为、三星都出现了这个问题。
详细bug请看附件视频,视频里的手机是旧手机,最新版本的android手机也是一样的效果,排除android版本问题。

2021-04-21 14:16 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复