页面:
<form class="bs-example bs-example-form" role="form" @submit.prevent="loginSubmit">
<div class="input-group input-group-lg">
<input type="number" id="userPhone" class="user-input form-control" placeholder="请输入手机号" pattern="^1[3|4|5|8][0-9]\d{4,8}$" title="请输入11位的手机号" v-model="user.userPhone" required="required" />
</div>
<div class="input-group input-group-lg" v-show="flag==1">
<input type="password" class="form-control pwd-input" placeholder="请输入密码6-20位字母和数字" pattern="[0-9A-Za-z]{6,18}$" title= "请输入6-18位字母或数字的组合" v-model="userp" required="required" maxlength="20" />
<img src="../assets/login/showPwd.png" class="pull-right" style="margin-top:-40px;" @click="showPassword(0)">
</div>
<div class="input-group input-group-lg" v-show="flag==0">
<input type="text" class="form-control pwd-input" placeholder="请输入密码6-20位字母和数字" pattern="[0-9A-Za-z]{6,18}$" title= "请输入6-18位字母或数字的组合" v-model="userp" required="required" maxlength="20" />
<img src="../assets/login/hidePwd.png" class="pull-right" style="margin-top:-40px;" @click="showPassword(1)">
</div> ...................
脚本:
export default{
data(){
return{
flag:1,
userp:'',
user:{userPhone:localStorage.userPhone,userPwd:''}
}
},
methods:{ showPassword(i){this.flag=i;} ................
}
}
原因:是浏览器发现了有隐藏(display:none)的required需求元素(两个密码输入框都设置了required),所以提交时会出错。
将v-show改为v-if,从隐藏元素变为移除dom,可以避免这个错误。