注意事项:
确认密码功能,需要二次密码一致,这里需要使用自定义规则。
html部分
<view class="reg-box">
<uni-forms ref="form" :modelValue="formData">
<view class="input-item">
<uni-forms-item name="username">
<uni-easyinput type="text" v-model="formData.username" placeholder="请输入用户名" />
</uni-forms-item>
</view>
<view class="input-item">
<uni-forms-item name="password">
<uni-easyinput type="password" v-model="formData.password" placeholder="请输入密码" />
</uni-forms-item>
</view>
<view class="input-item">
<uni-forms-item name="password2">
<uni-easyinput type="password" v-model="formData.password2" placeholder="请确认密码" />
</uni-forms-item>
</view>
</uni-forms>
<button class="regOk" @click="submit">注 册</button>
</view>
JS部分
data() {
return {
timeId: null,
// 表单数据
formData: {
username: '',
password: '',
password2: ''
},
rules: {
// 对username字段进行必填验证
username: {
rules: [{
required: true,
errorMessage: '请输入用户名',
},
{
minLength: 3,
maxLength: 5,
errorMessage: '用户名在 {minLength} 到 {maxLength} 个字符',
}
]
},
password: {
rules: [{
required: true,
errorMessage: '请输入密码',
},
{
minLength: 8,
errorMessage: '密码太短,请重新设置'
}
]
},
password2: {
rules: [{
required: true,
errorMessage: '确认密码不能为空',
},
{
// 定义自定义效验规则函数
validateFunction: (rule,value,data,callback)=>{
if (this.formData.password !== value) {
callback('两次密码输入不一致')
}
return true
}
}
]
}
}
}
},
onReady() {
this.$refs.form.setRules(this.rules)
},
methods: {
/**
* 复写 binddata 方法,如果只是为了校验,无复杂自定义操作,可忽略此方法
* @param {String} name 字段名称
* @param {String} value 表单域的值
*/
// binddata(name,value){
// 通过 input 事件设置表单指定 name 的值
// this.$refs.form.setValue(name, value)
// },
// 触发提交表单
submit() {
this.$refs.form.validate().then(res=>{
uni.showToast({
title: '注册成功,请重新登录',
icon: 'none'
})
this.timeId = setTimeout(()=>{
uni.navigateTo({
url: "/pages/login/login"
})
clearTimeout(this.timeId)
},2000)
}).catch(err =>{
uni.showToast({
title: '未成功注册',
icon: 'none'
})
})
}
}