如何在vue.js中验证密码和确认密码
在这里,我编写了一个vue.js代码,用于在字段为空且用户尝试提交表单及其工作正常时,将边框设置为“红色”。并且知道我正在尝试验证密码并确认密码。例如,如果用户尝试输入密码,如果密码与要求不匹配,则消息应显示为“必须输入至少八个字符”,如果用户在确认密码时输入密码,如果密码不匹配,则应显示“密码不匹配”。那么我们如何在vue.js中实现呢?请帮助我如何在vue.js中验证密码和确认密码,vue.js,Vue.js,在这里,我编写了一个vue.js代码,用于在字段为空且用户尝试提交表单及其工作正常时,将边框设置为“红色”。并且知道我正在尝试验证密码并确认密码。例如,如果用户尝试输入密码,如果密码与要求不匹配,则消息应显示为“必须输入至少八个字符”,如果用户在确认密码时输入密码,如果密码不匹配,则应显示“密码不匹配”。那么我们如何在vue.js中实现呢?请帮助我 <head> <script src='https://cdnjs.cloudflare.com/ajax/libs/vue/2.
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js'></script>
<style scoped>
.invalid {
border-color: red;
}
</style>
</head>
<body>
<div id="game">
<template id="myFormTemplate">
<form @submit.prevent="submit" >
<input name="name" v-model="name" :class="{ invalid: isSubmitting && !name.trim() }"/>
<input name="age" v-model="age" :class="{ invalid: isSubmitting && !age.trim() }"/>
<input name="password" v-model="password" :class="{ invalid: isSubmitting && !password.trim() }"/>
<input name="cpassword" v-model="cpassword" :class="{ invalid: isSubmitting && !cpassword.trim() }"/>
<input type="submit" />
</form>
</template>
</div>
.无效{
边框颜色:红色;
}
新Vue({
el:'游戏',
数据(){
返回{
姓名:“,
密码:“”,
年龄:“,
注册会计师密码:“,
提交:错误,
};
模板:document.getElementById(“myFormTemplate”)
},
观察:{
密码(值){
//将其绑定到电子邮件输入中的数据值
this.password=值;
此.validatePassword(值);
},
方法:{
提交(){
this.isSubmitting=true;
const formValid=[this.name,this.address,this.age,this.phone]
.map((x)=>x.trim())
.every(布尔值);
如果(格式有效){
控制台日志(“无效表单”);
}否则{
控制台日志(“提交表格”);
}
},
validatePassword(值){
如果(/^(?=.[a-z])(?=.[a-z])(?=.[0-9])(?=.[!@$%^&*))(?=.{8,})/.test(值))
{
this.msg['password']='';
}否则{
此.msg['password']='密码必须为8个字符,混合使用大写、小写、数字和特殊字符';
}
},
},
})
您尝试了什么?您共享的代码不包含您提到的逻辑。为什么要检查phone.trim()和address.trim()关于密码输入?除此之外,你想做的一个方法是观看密码
,在那里进行检查并在那里设置invalidPassword
变量。然后你可以使用它触发无效类。谢谢laerte。为了快速响应,实际上我已经给出了错误的输入,知道我已经更新了代码。因此,正如你建议使用watc她说:“我已经试过了,但是我仍然无法实现。请你给我一些提示。我已经更新了代码。请告诉我哪里出了问题。”
<script>
new Vue({
el: '#game',
data () {
return {
name: "",
password: "",
age: "",
cpassword: "",
isSubmitting: false,
};
template: document.getElementById("myFormTemplate")
},
watch: {
password(value){
// binding this to the data value in the email input
this.password = value;
this.validatePassword(value);
},
methods: {
submit() {
this.isSubmitting = true;
const formValid = [this.name, this.address, this.age, this.phone]
.map((x) => x.trim())
.every(Boolean);
if (formValid) {
console.log("invalid form");
} else {
console.log("submitting form");
}
},
validatePassword(value){
if (/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})/.test(value))
{
this.msg['password'] = '';
} else{
this.msg['password'] = 'Password must be 8 characters with mix of upper, lower case, numeric and special character';
}
},
},
})
</script>