vue element input 如何判断回程必须大于初始读数?

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.5.4/lib/index.js"></script>
<div id="app">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  <el-form-item label="回程" prop="turnTrip">
    <el-input v-model.number="ruleForm.turnTrip" type="number"></el-input>
  </el-form-item>
  <el-form-item label="初始读数" prop="initReadings">
     <el-input v-model.number="ruleForm.initReadings" type="number"></el-input>
  </el-form-item>
  <el-form-item>
    <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
    <el-button @click="resetForm('ruleForm')">重置</el-button>
  </el-form-item>
</el-form>
</div>
var Main = {
    data() {
      return {
        ruleForm: {
          turnTrip: '',
          initReadings: '',
          desc: ''
        },
        rules: {
            turnTrip: [{ required: true, validator:(rule,value,callback)=>{
               if(!value){
                  callback(new Error('请输入回程'));
              }
               if(value<0){
                     callback(new Error('必须大于0'));
               }else{
                     callback();
               }
          }, trigger: "blur" }],
          initReadings: [
            { required: true, message: '请输入初始读数', trigger: 'change' }
          ],
        }
      };
    },
    methods: {
      submitForm(formName) {
        this.$refs[formName].validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      },
      resetForm(formName) {
        this.$refs[formName].resetFields();
      }
    }
  }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.5.4/lib/theme-chalk/index.css");

https://jsfiddle.net/vx3mftb4/2/

阅读 2.9k
2 个回答
var firstNumber = (rule, value, callback) => {
      if (!value) {
        callback(new Error("请输入初始读数"));
      }
      if (value < 0) {
        callback(new Error("必须大于0"));
      } else {
        if (this.dataForm.turnTrip > value) {
          callback();
        } else {
          callback(new Error("回程必须大于初始读数"));
        }
      }
    };

以上这样放在data()跟return之间 就OK。

rules: {
            turnTrip: [{ required: true, validator:(rule,value,callback)=>{
               if(!value){
                  callback(new Error('请输入回程'));
              }
               if(value<0){
                     callback(new Error('必须大于0'));
               }else{
                     callback();
               }
          }, trigger: "blur" }, type: 'number'],
          initReadings: [
            { required: true, message: '请输入初始读数', trigger: 'change', type: 'number' }
          ],
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题