包含用户名和密码的表单

    1. <template>
    2. <div class="home">
    3. <el-form
    4. status-icon
    5. :model="ruleForm"
    6. :rules="rules"
    7. ref="ruleForm"
    8. label-width="100px"
    9. class="demo-ruleForm"
    10. >
    11. <el-form-item label="用户名" prop="name">
    12. <el-input v-model="ruleForm.name"></el-input>
    13. </el-form-item>
    14. <el-form-item label="密码" prop="pass">
    15. <el-input
    16. type="password"
    17. v-model="ruleForm.pass"
    18. autocomplete="off"
    19. ></el-input>
    20. </el-form-item>
    21. <el-form-item>
    22. <el-button type="primary" @click="submitForm('ruleForm')"
    23. >立即创建</el-button
    24. >
    25. </el-form-item>
    26. </el-form>
    27. </div>
    28. </template>
    29. <script>
    30. export default {
    31. name: "Home",
    32. data() {
    33. var validatePass = (rule,value,callback)=>{
    34. if(value===""){
    35. callback(new Error("密码不能为空"))
    36. }else {
    37. /* 数字,大小写字母,特殊字符组成长度不能小于6 */
    38. var reg = /^(?![A-z0-9]+$)(?=.[^%&',;=?$\x22])(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9]).{6,}$/;
    39. if(!reg.test(value)){
    40. callback(new Error("密码必须由数字,大小写字母,特殊字符组成长度不能小于6"))
    41. }else{
    42. callback()
    43. }
    44. }
    45. }
    46. return {
    47. ruleForm: {
    48. name: "",
    49. pass: "",
    50. },
    51. //表单验证规则
    52. rules: {
    53. name: [
    54. { required: true, message: "请输入用户名", trigger: "blur" },
    55. { min: 5, message: "用户名最少是5个字符", trigger: "blur" },
    56. ],
    57. pass:[
    58. {required:true,validator: validatePass}
    59. ]
    60. },
    61. };
    62. },
    63. methods:{
    64. submitForm(formName) {
    65. this.$refs[formName].validate((valid) => {
    66. console.log(valid)
    67. if (valid) {
    68. alert('submit!');
    69. // HTTP
    70. } else {
    71. console.log('error submit!!');
    72. return false;
    73. }
    74. });
    75. },
    76. }
    77. };
    78. </script>
    79. <style scoped>
    80. </style>