当前位置: 首页 > 知识库问答 >
问题:

javascript - element-plus,请问如何对一行el-form-item内多个el-input输入框的校验?

夏俊人
2023-11-14

请问大佬们,如何对一行el-form-item内多个el-input输入框的进行只能输入整数或者小数的校验?

<li>            <el-form ref="ruleFormRef" :model="RtkForm" :rules="rules" label-width="120px">              <div class="OverView_header">                <h1>rtk杆臂</h1>              </div>              <div class="OverView_SerialConfig_Part">                <div>                  <el-form-item label="主天线杆臂(mm):">                    <el-input v-model.number="RtkForm.x" />                    <el-input v-model.number="RtkForm.y" />                    <el-input v-model.number="RtkForm.z" />                  </el-form-item>                </div>                <div>                  <el-form-item label="测量误差估计(mm):">                    <el-input v-model.number="RtkForm.mis_x" />                    <el-input v-model.number="RtkForm.mis_y" />                    <el-input v-model.number="RtkForm.mis_z" />                  </el-form-item>                </div>                <div>                  <el-form-item label="副天线杆臂(mm):">                    <el-input v-model.number="RtkForm.x_s" />                    <el-input v-model.number="RtkForm.y_s" />                    <el-input v-model.number="RtkForm.z_s" />                  </el-form-item>                </div>                <div>                  <el-form-item label="测量误差估计(mm):">                    <el-input v-model.number="RtkForm.mis_x_s" />                    <el-input v-model.number="RtkForm.mis_y_s" />                    <el-input v-model.number="RtkForm.mis_z_s" />                  </el-form-item>                </div>                <!-- rtk杆臂设置 -->                <el-button @click="saveRtkSetting">保存</el-button>              </div>            </el-form>          </li>

图片.png
图片.png

共有1个答案

长孙阳成
2023-11-14

您可以使用自定义验证规则来完成这个任务。对于只能输入整数或者小数的校验,您可以使用 ruleFormRefvalidate 方法,检查每个 el-input 输入框的值是否为数字,并且是否为整数或小数。

下面是一个简单的示例,它演示了如何使用 Vue 3 的 refreactive 来实现这个功能:

<template>  <el-form :model="form" :rules="rules" ref="formRef">    <el-form-item label="输入框1">      <el-input v-model.number="form.input1" />    </el-form-item>    <el-form-item label="输入框2">      <el-input v-model.number="form.input2" />    </el-form-item>    <el-button type="primary" @click="submit">提交</el-button>  </el-form></template><script>export default {  setup() {    const form = reactive({      input1: '',      input2: '',    });    const rules = {      input1: [        { required: true, message: '请输入输入框1的值', trigger: 'blur' },        { validator: (rule, value, callback) => {          if (!Number.isInteger(value)) {            callback(new Error('输入框1只能输入整数'));          } else {            callback();          }        }, trigger: 'blur' }],      input2: [        { required: true, message: '请输入输入框2的值', trigger: 'blur' },        { validator: (rule, value, callback) => {          if (!Number.isInteger(value) && Number.isInteger(Math.round(value))) {            callback(new Error('输入框2只能输入整数或四舍五入至整数'));          } else {            callback();          }        }, trigger: 'blur' }],    };    const formRef = ref(null);    const validate = () => {      formRef.value.validate((valid) => {        if (valid) {          alert('提交成功');        } else {          alert('验证失败');          return false;        }      });    };    return { form, rules, formRef, validate };  },};</script>
 类似资料:
  • vue3 + vite + electron + element-plus 创建的界面使用的 el-form + el-input。 每次获取焦点之后只能输入一个字符,单独使用 el-input 没有问题,放到 el-form 里面之后就有问题了。 单独使用 el-input,不用el-form 没有问题,使用 el-form + 原生input 也没问题。

  • el-input框输入的问题 el-input是通过封装的,在data里面是这样使用的,代码如下 userName: { }, 现在的赋值 const res = await getCompanyInfo() res.data.companyCode是接口api返回来的数据固定的字段,显示在页面上 现在的需求是 返回来的字段是固定的不能让客户删除,只能在固定的字段后面添加跟删除,现在想要在inpu

  • 该如何正确的做动态表单校验: “el-form-item”是后来加上的,加上el-select之后位置都变了

  • 差不多这样 看到有资源说这样:https://blog.csdn.net/cqlcqlcui123/article/details/130141190 这样也太费劲了,大家都是这么写的吗? 另外找到的材料都是element-ui,vue2的,基本上都推荐用.native: 但是写进去之后提示这个被deprecated了,也不生效

  • 其实是想要实现这样的样式: el-select 多选,选中的内容以逗号分割,最小宽度80px;最大宽度300px;超出最大宽度显示省略号 就是大概是下面这样,一行显示已经处理了,但是最小80px,然后input框的宽度根据选中的项的字符串内容变大,最大300px,超过显示省略号还没想好如何处理,有无大佬给个思路。 看了网上有说可以用 el-select 的prefix,结合计算属性去实现,但是pr

  • aside里面套了el-menu 样式为 折叠动画显示正常,但是展开动画就不正常了,我看表象应该是aside正常展开,但是el-menu展开没有跟随aside。 有种解决办法就是直接把menu的border设成none,然后aside写个border,这样asider的border就可以跟着折叠一起了。但是不太理解,是因为折叠时间吗? 是因为展开的时候文字出现较晚的原因吗