收藏
回答

两个input组件用data-type形式传参,value会相互覆盖?

wxml:

<view>
  <view class="testView">
    <input type="text" placeholder="输入框1" value="{{d.input1}}" data-type="type1" bindchange="changeData" />
    <input type="text" placeholder="输入框2" value="{{d.input2}}" data-type="type2" bindchange="changeData" />
  </view>
</view>

js:

  data: {
      d: {
        input1: "",
        input2: ""
      }
    },
  changeData: function (e{
    var type = e.currentTarget.dataset.type
    var value = e.detail.value
    console.log(type, value)
    switch (type) {
      case "type1":
          this.setData({
            d: {
              input1: value
            }
          })
          break;
      case "type2":
          this.setData({
            d: {
              input2: value
            }
          })
          break;
      default:
        break;
    }
  },


两个组件会相互清空,即:填入第一个input组件后会清空第二个input组件的内容,填入第二个input组件后会清空第一个input组件的内容,有没有大佬解答一下?

最后一次编辑于  2022-02-09
回答关注问题邀请回答
收藏

4 个回答

  • Demons
    Demons
    2022-02-09

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2022-02-09
    有用
    回复 1
    • 土豆炖白菜
      土豆炖白菜
      2022-02-09
      感谢,之前因为没有找到问题所在,描述有误,现已纠正问题描述,找到原因了
      2022-02-09
      回复
  • 土豆炖白菜
    土豆炖白菜
    2022-02-09

    打扰各位了,我已发现问题,是我在setData字段的时候没有注意d是一个结构体,把他另一个属性给清除了,前面提问时没有注意这点的体现

    2022-02-09
    有用 1
    回复 1
    • 土豆炖白菜
      土豆炖白菜
      2022-02-10
      结构体字段赋值应该是:
      2022-02-10
      回复
  • 游戏人生
    游戏人生
    2022-02-09


    不要写一样,看下

    2022-02-09
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    2022-02-09

    2022-02-09
    有用
    回复 4
    • 土豆炖白菜
      土豆炖白菜
      2022-02-09
      刚刚编辑缓存问题,已补充
      2022-02-09
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-02-09回复土豆炖白菜
      你这代码复现不出来啊
      2022-02-09
      回复
    • 土豆炖白菜
      土豆炖白菜
      2022-02-09回复Mr.Zhao
      两个input在同一个view里面,会不会跟bindtab和catchtab一样有冒泡问题?
      2022-02-09
      回复
    • Mr.Zhao
      Mr.Zhao
      2022-02-09回复土豆炖白菜
      你整个能复现问题的代码片段
      2022-02-09
      回复
登录 后发表内容