zoukankan      html  css  js  c++  java
  • Vue+Element-Ui 异步表单效验

      简单的效验

     Form 组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名
      /*  ruleForm :表单绑定的数据
       rules : 表单效验规则
       ref="ruleForm" : 表示el-form 这个Dom 节点
     */
        

    <
    el-form :model="ruleForm" :rules="rules" ref="ruleForm" > <el-form-item label="活动名称" prop="name"> //el-form-item 上面必须要设置 prop 属性prop对应绑定的model值 <el-input v-model="ruleForm.name"></el-input> </el-form-item> </el-form> <script> export default { data() { return { ruleForm: { name: '', }, rules: {
          //name 对应 prop 的值 name: [ { required:
    true, message: '请输入活动名称', trigger: 'blur' }, { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' } ] } }; }, methods: { submitForm(formName) {
         //调用表单节点的效验方法
        this.$refs[formName].validate((valid) => { if (valid) { alert('submit!'); } else { console.log('error submit!!'); return false; } }); }
       } }
    </script>

       然后是自定义效验

    <template>
        <el-dialog title="添加新团队" :visible.sync="showNewTeamDialog">
    
            <el-form :rules="rules" ref="newTeam" :model="newTeam" label-width="100px">
                <el-form-item label="团队名称" id="teamName" prop="teamName" ref="teamName">
                    <el-input v-model="newTeam.teamName" placeholder="团队名称" :style="{'width':inputWidth}"></el-input>
                </el-form-item>
    
                <div class="postButtons">
                    <el-form-item>
                        <el-button v-if="drugSearch_btn_edit" type="primary" @click="onSubmit('newTeam')" style="100px">确定</el-button>
                        <el-button @click="showNewTeamDialog = false" style="100px">取消</el-button>
                    </el-form-item>
                </div>
            </el-form>
        </el-dialog>
    </template>
    
    <script>

    /*

    import {
      verifyTeamName
    } from 'api/doctorTeam/doctorTeamApi'   

      api/doctorTeam/doctorTeamApi 里面的方法如下

    export function verifyTeamName(params) {
        return fetch({
        url: '/api/nphc/doctorTeam/verifyTeamName',
        method: 'post',
        params: params
      });
    }

    */

    export default {

          data() {
                //在return 上面写自定义效验方法
                const checkTeamName = (rule, value, callback) => {
                    if (!value) {
                //callback 是提示的信息
    return callback(new Error('团队名不能为空')); } else {
                //调用封装了的异步效验方法, verifyTeamName(
    this.newTeam).then(response => { if (response.result.errcode != '0') { console.log("效验失败"); } else { if (response.body[0] === 0) { console.log(response.body[0]); callback(); } else { callback("已存在该队名"); } } }); } }; return { rules: { teamName: [{ validator: checkTeamName, trigger: 'blur' }], }, newTeam: { teamName: undefined }, } }, methods: { // 新增团队提交 onSubmit(formName) { this.$refs[formName].validate((valid) => { if (valid) { addTeam(this.newTeam).then(response => { if (response.result.errcode != '0') { console.log("添加团队失败"); } else { this.newTeam.captainId = undefined; this.newTeam.hospitalId = undefined; this.$message('添加团队成功'); this.getList(); } }); this.showNewTeamDialog = false; } else { console.log('error submit!!'); return false; } }); }, doAdd() {

              //重置表单清除表单数据和效验
    this.$nextTick(function() { if (this.$refs.newTeam !== undefined) this.$refs.newTeam.resetFields(); }) this.showNewTeamDialog = true; }, } } </script>
  • 相关阅读:
    假如时光倒流,我会这么学习Java
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础部分全套教程.
    假如时光倒流,我会这么学习Java
    Window Location对象
    Window Screen对象
    Window
    easyui datagrid 清除缓存方法
    easyui tree扩展tree方法获取目标节点的一级子节点
    JavaScript 对象
  • 原文地址:https://www.cnblogs.com/luffyxin/p/10083719.html
Copyright © 2011-2022 走看看