vue 用户名重复验证_vue+element-ui集成随机验证码+用户名+密码的form表单验证功能...

在登入页面,我们往往需要通过输入验证码才能进行登入,那我们下面就详讲一下在vue项目中如何配合element-ui实现这个功能

第一步:自定义一个生产随机验证码的组件,其本质是使用canvas绘制,详细代码如下:

第二步:使用该组件:

我们首先新建一个vue组件,在该组件进行布局,其中还包括用户名和密码的验证(这只是前端的简单验证,真实项目中还需要请求登入接口进行后端验证)

用户名">

Box">

Box v-model="checked">记住账号

登录

第三步:生产随机码与进行登入验证

import { isvalidUsername } from '@/utils/validate'

import SIdentify from '@/components/identify/identify.vue'

export default {

name: 'userlogin',data() {

// 用户名自定义验证规则

const validateUsername = (rule,value,callback) => {

if (!isvalidUsername(value)) {

callback(new Error('请输入正确的用户名'))

} else {

console.log('user',value)

callback()

}

}

// 验证码自定义验证规则

const validateVerifycode = (rule,callback) => {

if (value === '') {

callback(new Error('请输入验证码'))

} else if (value !== this.identifyCode) {

console.log('validateVerifycode:',value)

callback(new Error('验证码不正确!'))

} else {

callback()

}

}

return {

fontstyle: {

},loginForm: {

username: 'admin',password: '123456',verifycode: ''

},checked: false,identifyCodes: '1234567890',identifyCode: '',loginRules: { // 绑定在form表单中的验证规则

username: [

{ required: true,trigger: 'blur',validator: validateUsername }

],password: [

{ required: true,message: '请输入密码',trigger: 'blur' },{ min: 6,message: '密码长度最少为6位',trigger: 'blur' }

],verifycode: [

{ required: true,validator: validateVerifycode }

]

},passwordType: 'password'

}

},components: {

SIdentify

},created() {

},mounted() {

// 验证码初始化

this.identifyCode = ''

this.makeCode(this.identifyCodes,4)

},computed: {

},props: [],methods: {

// 通过改变input的type使密码可见

showPassword() {

this.fontstyle === '' ? (this.fontstyle = 'color: red') : (this.fontstyle = '') // 改变密码可见按钮颜色

this.passwordType === ''

? (this.passwordType = 'password')

: (this.passwordType = '')

},// 点击登入按钮

handleLogin() {

this.$refs.loginForm.validate(valid => {

if (valid) {

this.$store.dispatch('Login',this.loginForm).then(res => {

this.$router.push({ path: '/dashboard/dashboard' })

})

}

})

},// 生成随机数

randomNum(min,// 切换验证码

refreshCode() {

this.identifyCode = ''

this.makeCode(this.identifyCodes,// 生成四位随机验证码

makeCode(o,l) {

for (let i = 0; i < l; i++) {

this.identifyCode += this.identifyCodes[

this.randomNum(0,this.identifyCodes.length)

]

}

console.log(this.identifyCode)

}

}

}

最后的效果如下,当我们输入之后鼠标失去焦点就会进行验证:

总结

以上所述是小编给大家介绍的vue+element-ui集成随机验证码+用户名+密码的form表单验证功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250


版权声明:本文为weixin_32572129原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。