element表单重置要点一个不能少

element表单重置要点一个不能少

每次表单重置都没效果,后来查了资料,发现一直少了规则绑定

element 的 Form 组件提供了表单验证的功能,需要通过 rules 属性传入约定的验证规则,并将 Form-Item 的 prop 属性设置为需校验的字段名。

有两点需要注意:

1.必须有对应的 ref,且名字一致,表明重置哪个表单。

2.prop 设置的字段名要和 v-model 绑定的字段名一致,否则重置表单或进行自定义校验规则时不会生效。

仅使用重置功能时具体校验规则不必写,但要重置的字段一定得有对应的 prop。

每次打开表单的时候不要忘记初始化没有显示在页面上的一些数据,如集合数组等,因为其没有对应的prop所以不会被重置。

//<template>标签中
 <el-form ref="removeAddRef" :rules="removeAddRules" :model="removeAddData"  label-width="120px">
        <el-row>
         <el-col :span="12">
           <el-form-item label="员工id" prop="eid">
             <el-input v-model="removeAddData.eid" placeholder="请输入员工的工号"></el-input>
           </el-form-item>
         </el-col>
          <el-col :span="12">
            <el-form-item label="工作等级" prop="workLevel">
              <el-select v-model="removeAddData.workLevel" clearable placeholder="请选择">
                <el-option
                    v-for="item in workLevels"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name">
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="调往部门" prop="afterDepId">
              <el-select v-model="removeAddData.afterDepId" clearable placeholder="请选择">
                <el-option
                    v-for="item in departmentData"
                    :key="item.id"
                    :label="item.name"
                    :value="item.name">
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="调往岗位" prop="afterJobId">
              <el-input v-model="removeAddData.afterJobId" placeholder="请输入调往岗位名称"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="调职时间" prop="removeDate">
              <el-date-picker
                  v-model="removeAddData.removeDate"
                  type="date"
                  placeholder="选择日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="调职状态" prop="remark">
              <span style="color: #99a9bf;font-size: 12px;margin-right: 2px">进行中</span>
              <el-switch
                  v-model="removeAddData.remark"
                  active-color="#13ce66"
                  inactive-color="#ff4949"
                  active-value="已完成"
                  inactive-value="进行中">
              </el-switch>
              <span style="color: #99a9bf;font-size: 12px;margin-left: 2px">已完成</span>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="调职原因" prop="reason">
              <el-input v-model="removeAddData.reason" placeholder="请输入调职原因"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
//<script>标签中
//data里面要有绑定表单对象和规则对象
return {
      // 搜索关键字
      
      // 添加调动记录数据
      removeAddData:{
        eid:'',
        afterDepId:'',
        afterJobId:'',
        removeDate:'',
        reason:'',
        remark:'',
        workLevel:''
      },
     //规则可以不详细写
      removeAddRules:{
        eid:'',
        afterDepId:'',
        afterJobId:'',
        removeDate:'',
        reason:'',
        remark:'',
        workLevel:''
      }
    }
//方法中
 closeFun(){
 	//重置方法
      this.$refs.removeAddRef.resetFields()
    }

链接: https://blog.csdn.net/yuxiangmitu/article/details/107468773.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Element UI,重置表单时默认情况下是无法清空表单的。这是因为Element UI的表单组件会维护一个内部的表单数据对象,重置表单只会将该对象的值恢复为初始状态,而不会清空表单的输入值。 如果你需要在重置表单时清空所有输入值,可以通过自定义方法来实现。你可以在重置按钮的点击事件中,手动将表单中的所有输入值清空。具体步骤如下: 1. 给重置按钮添加点击事件的监听器,可以通过`@click`或者`v-on:click`来实现。 2. 在点击事件的处理函数中,获取表单元素的引用。 3. 遍历表单元素,将每个表单元素的值设置为空字符串或者null。 以下是一个示例代码: ```html <template> <el-form ref="myForm" :model="formData"> <!-- 表单项 --> <el-form-item label="姓名" prop="name"> <el-input v-model="formData.name"></el-input> </el-form-item> <!-- 其他表单项省略 --> <!-- 按钮 --> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> <el-button @click="resetForm">重置</el-button> </el-form-item> </el-form> </template> <script> export default { data() { return { formData: { name: '', // 其他字段 } }; }, methods: { submitForm() { // 提交表单逻辑 }, resetForm() { // 手动清空表单 const form = this.$refs.myForm; form.resetFields(); // 重置表单内部数据对象 // 清空输入值 Object.keys(this.formData).forEach(key => { this.formData[key] = ''; }); } } }; </script> ``` 在上述示例代码中,`resetForm`方法中的逻辑手动清空了表单的输入值,通过遍历`formData`对象将每个字段的值设置为空字符串。这样在调用`form.resetFields()`重置表单内部数据对象后,表单的输入值也会被清空。 希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值