详细参考:input | uni-app官网
用到如下属性,注意,这里输入框的focus是属性,不是事件
<template>
<view>
<view class='inputbox' v-if='!renameFocus' @click='focusNum'>
{{qty}}
</view>
<input v-else type="digit" min="0.001" :max="99999" :maxlength="9" v-model="qty" :focus="renameFocus" :selection-start="start" :selection-end="end" @blur="blurInput" />
</view>
</template>
<script>
export default {
data: function() {
return {
qty: 0,
renameFocus: false,
start: -1,
end: -1,
}
},
methods: {
focusNum() {
debugger
// 点击文本框选中
this.renameFocus = true
this.start = 0
this.end = this.qty.toString().length
// 子组件多层嵌套,输入框点击在循环中,页面点击不执行,要加上这句
this.$forceUpdate();
},
blurInput() {
this.renameFocus = false
this.start = -1
this.end = -1
},
}
}
</script>