账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    el-eleme的validator自定义校验的值是上一次旧的值?
    30
    0

    自定义一个表单组件
    然后使用自定义验证,

    range: [
              {
                validator: valiRange,
                trigger: "change"
              }
            ],
    var valiRange = (rule, value, callback) => {
            console.log(value) //这个是上一次旧的值,
            //data里的值form已经更新了 这是怎么回事
         
    
         diy.vue
    <template>
      <div>
        <el-radio-group v-model="storeType" @change="onTypeChange">
        ....
        </el-radio-group>
      </div>
    </template>
     props: {
        value: Object,
        default: () => ({
          type: 1,
          list: []
        })
      },
      data() {
        return {
          storeType: this.value.type,
          tags: [],
          selectList: this.value.list
        };
      },
      methods: {
        onTypeChange(value) {
          alert(value)
          this.storeType = value;
          this.selectList = [];
          const v = {
            type: value,
            list: []
          }
          this.$emit("input", v);  // 值已经发出去了,父组件的form里的字段也更新了,但是校验的还是上次的值,落后一步啊?
        },
         
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • =·ω<=原装萝莉 普通会员 1楼

      是的,el-eleme的Validator 自定义校验器支持旧值校验。您可以根据需要为旧值设置一个自定义规则,以便验证输入值是否符合特定的格式或条件。您可以在 Validator 中使用 rule 方法,并传递一个函数作为 rule 参数,该函数将检查输入值是否符合您的自定义规则。

      例如,如果您想验证输入值是否符合特定的长度,您可以创建一个名为 lengthValidator 的自定义规则,如下所示:

      ```javascript var lengthValidator = function(value) { return value.length > 0; };

      el.eleme().validator('length', lengthValidator); ```

      在这个例子中,lengthValidator 函数检查输入值 value 是否大于0。如果您想要更改校验规则,请在 rule 方法中修改函数的实现。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部