Skip to content

关于在from表单中使用nut-input 或者原生input导致光标乱跳 无法正常删除问题 #3269

Open
@Dislover

Description

@Dislover

NutUI 包名

@nutui/nutui-taro

NutUI 版本号

3.1.8

平台

weapp

重现链接

https://nutui.jd.com/playground/#eyJBcHAudnVlIjoiPHRlbXBsYXRlPlxuICA8ZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIG51dC0gaW5wdXTlnKjlpJblsYLnsbvlnot0ZXh0XG4gICAgICA8bnV0LWlucHV0XG4gICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5aeT5ZCNXCJcbiAgICAgICAgc3R5bGU9XCJ3aWR0aDogMTAwcHg7XCJcbiAgICAgICAgdHlwZT1cInRleHRcIi8+XG4gICAgICAgIGlucHV05Zyo5aSW5bGC57G75Z6LdGV4dFxuICAgICAgICA8aW5wdXRcbiAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5aeT5ZCNXCJcbiAgICAgICAgdHlwZT1cInRleHRcIi8+XG4gICAgICAgIGlucHV05Zyo5aSW5bGC57G75Z6LZGlnaXRcbiAgICAgICAgPGlucHV0XG4gICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5aeT5ZCNXCJcbiAgICAgICAgdHlwZT1cImRpZ2l0XCIvPlxuICAgIDwvZGl2PlxuICBcbiAgICA8bnV0LWZvcm0gOm1vZGVsLXZhbHVlPVwiZm9ybURhdGFcIj5cbiAgICAgICAgaW5wdXTlnKhmb3Jt57G75Z6LZGlnaXRcbiAgICAgICAgPGlucHV0XG4gICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5aeT5ZCNXCJcbiAgICAgICAgdHlwZT1cImRpZ2l0XCIvPlxuICAgICAgICBpbnB1dOWcqGZvcm3nsbvlnot0ZXh0XG4gICAgICAgIDxpbnB1dFxuICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWnk+WQjVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCIvPlxuICAgICAgICBudXQtaW5wdXTlnKhmb3JtOlxuICAgICAgICA8bnV0LWlucHV0XG4gICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWnk+WQjVwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAvPlxuICAgICAgPG51dC1mb3JtLWl0ZW0gbGFiZWw9XCLlp5PlkI1cIj5cbiAgICAgICAgPG51dC1pbnB1dFxuICAgICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXlp5PlkI1cIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvbnV0LWZvcm0taXRlbT5cbiAgICAgIDxudXQtZm9ybS1pdGVtIGxhYmVsPVwi5bm06b6EXCI+XG4gICAgICAgIDxudXQtaW5wdXRcbiAgICAgICAgICB2LW1vZGVsPVwidmFsdWVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwi6K+36L6T5YWl5bm06b6EXCJcbiAgICAgICAgICB0eXBlPVwiZGlnaXRcIlxuICAgICAgICAvPlxuICAgICAgPC9udXQtZm9ybS1pdGVtPlxuICAgICAgPG51dC1mb3JtLWl0ZW0gbGFiZWw9XCLogZTns7vnlLXor51cIj5cbiAgICAgICAgPG51dC1pbnB1dFxuICAgICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXogZTns7vnlLXor51cIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAvPlxuICAgICAgPC9udXQtZm9ybS1pdGVtPlxuICAgICAgPG51dC1mb3JtLWl0ZW0gbGFiZWw9XCLlnLDlnYBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdi1tb2RlbD1cInZhbHVlXCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIuivt+i+k+WFpeWcsOWdgFwiXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAvPlxuICAgICAgPC9udXQtZm9ybS1pdGVtPlxuICAgICAgPG51dC1mb3JtLWl0ZW0gbGFiZWw9XCLlpIfms6hcIj5cbiAgICAgICAgPG51dC10ZXh0YXJlYVxuICAgICAgICAgIHYtbW9kZWw9XCJ2YWx1ZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCLor7fovpPlhaXlpIfms6hcIlxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgLz5cbiAgICAgIDwvbnV0LWZvcm0taXRlbT5cbiAgICA8L251dC1mb3JtPlxuICAgXG4gIDwvZGl2PlxuPC90ZW1wbGF0ZT5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gIGRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiBcIua1i+ivlVwiLFxuICAgICAgZm9ybURhdGE6IHtcbiAgICAgICAgdmFsdWU6IFwi5rWL6K+VXCIsXG4gICAgICB9LFxuICAgIH07XG4gIH0sXG59O1xuPC9zY3JpcHQ+In0=

重现步骤

下面是我测试代码片端
`

nut- input在外层类型text input在外层类型text input在外层类型digit
<nut-form :model-value="formData">
    input在form类型digit
    <input
    v-model="value"
    placeholder="请输入姓名"
    type="digit"/>
    input在form类型text
    <input
    v-model="value"
    placeholder="请输入姓名"
    type="text"/>
    nut-input在form:
    <nut-input
      v-model="value"
      placeholder="请输入姓名"
      type="text"
    />
  <nut-form-item label="姓名">
    <nut-input
      v-model="value"
      placeholder="请输入姓名"
      type="text"
    />
  </nut-form-item>
  <nut-form-item label="年龄">
    <nut-input
      v-model="value"
      placeholder="请输入年龄"
      type="digit"
    />
  </nut-form-item>
  <nut-form-item label="联系电话">
    <nut-input
      v-model="value"
      placeholder="请输入联系电话"
      type="number"
    />
  </nut-form-item>
  <nut-form-item label="地址">
    <input
      v-model="value"
      placeholder="请输入地址"
      type="text"
    />
  </nut-form-item>
  <nut-form-item label="备注">
    <nut-textarea
      v-model="value"
      placeholder="请输入备注"
      type="text"
    />
  </nut-form-item>
</nut-form>
<script> export default { data() { return { value: "测试", formData: { value: "测试", }, }; }, }; </script>`

可以看出 在form表单外部是没有问题的 只要input组件在nut-form内部使用 光标就会错位

期望的结果是什么?

正常输入 正常删除

实际的结果是什么?

输入时 光标会跳到第一个字符前面 ,删除时一样 无法正常输入和删除

环境信息

Taro v3.6.22

Taro CLI 3.6.22 environment info:
System:
OS: Windows 11 10.0.22631
Binaries:
Node: 18.20.8 - D:\Program Files\nodejs\node.EXE
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
npm: 9.6.2 - ~\AppData\Roaming\npm\npm.CMD
npmPackages:
@tarojs/cli: 3.5.5 => 3.5.5
@tarojs/components: 3.5.5 => 3.5.5
@tarojs/helper: 3.5.5 => 3.5.5
@tarojs/mini-runner: ^3.5.6 => 3.5.6
@tarojs/plugin-framework-vue3: 3.5.5 => 3.5.5
@tarojs/plugin-html: 3.5.5 => 3.5.5
@tarojs/plugin-platform-alipay: 3.5.5 => 3.5.5
@tarojs/plugin-platform-jd: 3.5.5 => 3.5.5
@tarojs/plugin-platform-qq: 3.5.5 => 3.5.5
@tarojs/plugin-platform-swan: 3.5.5 => 3.5.5
@tarojs/plugin-platform-tt: 3.5.5 => 3.5.5
@tarojs/plugin-platform-weapp: 3.5.5 => 3.5.5
@tarojs/router: 3.5.5 => 3.5.5
@tarojs/runtime: 3.5.5 => 3.5.5
@tarojs/shared: 3.5.5 => 3.5.5
@tarojs/taro: 3.5.5 => 3.5.5
@tarojs/taro-h5: 3.5.5 => 3.5.5
@tarojs/webpack5-runner: 3.5.5 => 3.5.5
babel-preset-taro: 3.5.5 => 3.5.5
eslint-config-taro: 3.5.5 => 3.5.5

其他补充信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions