通过textarea@focus事件,判断是不是iphone手机,然后先置空,在settimeout赋值,具体代码如下,代码水平小白,语法uniapp
组件代码:
<!-- 备注 -->
<view class="mt-[24rpx] rounded-[24rpx] p-[24rpx] bg-bg-white">
<view class="flex justify-between text-[28rpx] font-[400] leading-[40rpx]">
<view class="flex whitespace-nowrap">
<view class="text-text-main">
备注
</view>
</view>
<textarea
class="text-end flex flex-1 ml-[24rpx] break-all text-text-content text-[28rpx] font-[400] leading-[40rpx]"
placeholder="请输入备注信息" placeholder-class="textarea-placeholder" maxlength="150" auto-height
disable-default-padding v-model="remarks" @focus="textareaFocus" data-key="remarks" />
</view>
</view>
js代码:
textareaFocus(event) {
var {
deviceType,
brand
} = uni.getDeviceInfo();
var {
key
} = event.currentTarget.dataset;
if (deviceType === 'phone' && brand?.toLowerCase() === 'iphone' && this[key] !== '') {
var {
value
} = event.detail;
this[key] = '';
setTimeout(() => {
this[key] = value;
}, 1);
};

我没看懂啊,你这也不是 光标定位 的代码啊?
原问题:Textarea 点击聚焦 光标 始终出现在首位
你这 所展示代码 是 将 textarea 的值绑定 到 data-key 上,其他没别的意思了啊