账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuejs中多个input使用v-if和v-model后,未使用v-model的input项value值不显示
    33
    0

    问题:
    在 vuejs 中,使用 v-if 指令来控制 input 标签的显示,并且有 value 值作为默认显示, value 值不需要通过 vuejs 来控制,但使用 value 时该值在 DOM 中可看到却不显示。只有使用 :value 绑定时才可以显示。这是 vuejs 的特定要求?

    代码:

    HTML

    <div id="app">
      <input type="text" v-model="menu.key" v-if="menu.type == 1" >
      <input type="text" v-model="menu.url" v-if="menu.type == 2" >
      <input type="text" value="请添加子菜单" v-if="menu.type == 3" readonly>
      <button @click="toggle(1)">1</button>
      <button @click="toggle(2)">2</button>
      <button @click="toggle(3)">3</button>
    </div>
    
    <!--显示-->
    <input type="text" :value="'请添加子菜单'" v-if="menu.type == 3" readonly>
    <!--不显示-->
    <input type="text" value="请添加子菜单" v-if="menu.type == 3" readonly>

    JS

    new Vue({
      el: '#app',
      data: {
        show: true,
        menu: {
          type: 1,
          key: '1',
          url: '2'
        }
      },
      methods: {
        toggle(t) {
          switch (t) {
            case 1:
              this.menu.type = 1;
              break;
            case 2:
              this.menu.type = 2;
              break;
            case 3:
              this.menu.type = 3;
              break;
          }
        }
      }
    })

    demo地址:
    http://runjs.cn/code/y2r6weqh

    https://jsfiddle.net/trlanfen...

    补充:测试后发现只有多个input,且input中有一个或多个使用v-model绑定后,会出现此问题,如果全部是value则没有问题。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 旧街旧巷等旧人ぅ 普通会员 1楼

      在 Vue.js 中,多个输入元素使用 v-ifv-model 之后,未使用 v-model 的输入项 value 值不会显示。这是因为 Vue.js 的数据绑定会在特定条件下触发,例如用户在输入框中输入内容时。如果未使用 v-model 的输入项,那么在这些条件下,数据绑定不会触发,也就不会显示 value 的值。

      例如,假设你有两个输入框,input1input2,并且你想要在用户输入时显示 input2value。你可以在 Vue.js 中这样实现:

      html <input type="text" v-model="input2.value" />

      在这个例子中,input2 是使用 v-model 绑定的,因此在用户输入时,input2value 会自动更新。

      如果你想要在其他情况下显示 input2value,你可能需要使用 v-if 来判断是否需要显示 input2value。例如:

      html <input type="text" v-if="input1.value">

      在这个例子中,只有当 input1value 不为空时,v-if 才会触发,并显示 input2value

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部