<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<span v-if="isShow">
<label for="username">用户账号</label>
<input type="text" id="username" placeholder="用户账号" key="username">
</span>
<span v-else>
<label for="email">用户邮箱</label>
<input type="text" id="email" placeholder="用户邮箱" key="email"></span>
<button @click="changeClick">切换类型</button>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
isShow:true
},
methods:{
changeClick(){
this.isShow = !this.isShow;
}
}
})
</script>
</body>
</html>
点击切换按钮:

注意事项:
<span v-if="isShow">
<label for="username">用户账号</label>
<input type="text" id="username" placeholder="用户账号" key="username">
</span>
<span v-else>
<label for="email">用户邮箱</label>
<input type="text" id="email" placeholder="用户邮箱" key="email"></span>
<button @click="changeClick">切换类型</button>
- label标签中的for="username"和input标签中的id="username",可以实现聚焦功能:点击"用户账号"等价于点击input输入框。
- 在Vue中,虚拟DOM复用组件,通过添加key属性,可以标记两个input标签为两个不同的DOM,这样可以阻止input标签的复用,达到将一种情况下已经输入的内容进行清空的效果。否则已经输入的内容不会因为点击切换类型,而被清除。
Vue.js动态切换用户输入:账号与邮箱
这个示例展示了如何使用Vue.js创建一个动态表单,根据用户选择显示用户账号或邮箱输入框。点击切换按钮,Vue.js的数据绑定和条件渲染(v-if/v-else)用于切换输入字段,并通过key属性避免输入内容的混淆。同时,label的for属性与input的id匹配,实现了点击标签聚焦输入框的功能。
2745

被折叠的 条评论
为什么被折叠?



