1、使用van-form組件實現表單
ps:綁定密碼框的type屬性。
<van-form @submit="onSubmit"> <van-field v-model="username" name="用戶名" label="用戶名" placeholder="用戶名" :rules="[{ required: true, message: '請填寫用戶名' }]" left-icon="user-o" /> <van-field v-model="password" :type="showornot" name="密碼" label="密碼" placeholder="密碼" :rules="[{ required: true, message: '請填寫密碼' }]" left-icon="lock" clearable /> <div style="margin: 16px;"> <van-button round block type="info" native-type="submit">提交</van-button> </div> </van-form>
2、在密碼框使用插槽
ps:由於icon標簽不能直接提供點擊事件,使用span標簽包裹住.
<van-field v-model="password" :type="showornot" name="密碼" label="密碼" placeholder="密碼" :rules="[{ required: true, message: '請填寫密碼' }]" left-icon="lock" clearable > <template #button> <span @click="isShow"> <van-icon name="closed-eye" v-if="show" /> <van-icon name="eye-o" v-else /> </span> </template> </van-field>
3、寫好方法與變量
export default {
name: 'Login',
data() {
return {
username: '',
password: '',
show: true,
showornot: 'password'
}
},
methods: {
onSubmit(values) {
console.log('submit', values)
},
isShow() {
this.show = !this.show
if (this.show === true) {
this.showornot = 'password'
} else {
this.showornot = 'text'
}
}
}
}
實現效果:
點擊密碼框最右側小圖標