当前位置:首页 > 编程笔记 > 正文
已解决

el-input一些校验 事件

来自网友在路上 152852提问 提问时间:2023-11-07 16:09:28阅读次数: 52

最佳答案 问答题库528位专家为你答疑解惑

目录

1、el-input 限制输入纯数字和小数点。且输入不为0

2、限制el-input小数点后只能跟两位

3、el-select 创建条目 动态查找 & 鼠标移出选择框中仍有值(无需选中或回车)

4、手机号,必填且有校验

5、el-input,不必填,但有是否输入正确的校验

6、el-form清空校验


1、el-input 限制输入纯数字和小数点。且输入不为0
  <el-form ref="submitGatheringForm" :model="submitGatheringForm" :rules="formIndustryules" label-width="120px" size="small"> <el-form-item label="金额" prop="amount"><el-input v-model="submitGatheringForm.amount" type="number" @blur="blurAmount" placeholder="请输入金额"></el-input></el-form-item> 
</el-form>methods: {blurAmount(val) {if (this.submitGatheringForm.amount * 1 == 0) {this.submitGatheringForm.amount = '';}},}

或者

 <vxe-input v-model="price" type="text" @blur="blurRowPrice"></vxe-input>blurRowPrice() {var r = /\d+(\.\d+)?$/;  var flag = r.test(this.price * 1);if (flag) {if (this.price * 1 == 0) {this.price = '';}} else {this.price= '';}},

 

2、限制el-input小数点后只能跟两位
<el-form ref="basicInfoForm" :model="basicInfoForm" :rules="formIndustryules" label-width="120px" size="small"> <el-form-item label="金额" prop="amount"><el-input v-model="submitGatheringForm.amount"  @input="handleInput"></el-input></el-form-item> 
</el-form>methods: {handleInput(value) {this.basicInfoForm.creditLine =this.basicInfoForm.creditLine.replace(/[^\d^\.]+/g, '').replace(/^0+(\d)/, '$1').replace(/^\./, '0.').match(/^\d*(\.?\d{0,2})/g)[0] || '';// this.basicInfoForm.creditLine = value.replace(/[^\d\.]/g, '');
},
3、el-select 创建条目 动态查找 & 鼠标移出选择框中仍有值(无需选中或回车)
 <el-form-item label="物流公司" prop="logisticsName"><el-select v-model="overallShipmentForm.logistics"  @blur="blurComLog"  filterable remote :remote-method="remoteMethod" :loading="loading" @change="selectChanged" placeholder="请输入选择物流公司" allow-create default-first-option size="small"><el-option v-for="item in overallShioptions" :key="item.value" :label="item.label" :value="item"> </el-option></el-select>
</el-form-item><script> 
export default {props: [],data() {return {overallShipmentForm: { logistics: {},logisticsCode: '',logisticsName: '',},overallShioptions: [], //下拉选项},},methods: {   // 动态查找async remoteMethod(query) {if (query != '') {this.loading = true;// 根据输入框调接口查找是否有符合条件的,如果有就赋值overallShioptionslet data = (await getoverallShioptions(query ).data;var list = data.map(item => {return {value: `${item.code}`,label: `${item.name}`,};});setTimeout(() => {this.loading = false;this.overallShioptions = list;}, 200);} else {this.overallShioptions = [];}},//用户输入后,移出输入框,el-input中仍有值,无需选中或回车blurComLog(e) {let value = e.target.value; // 输入框值console.log(value);if (value) {// 你输入才有这个值 不为空,如果你下拉框选择的话 这个值为空this.overallShipmentForm.logistics = value;this.overallShipmentForm.logisticsName = value;this.overallShipmentForm.logisticsCode = '';}},
</script>
4、手机号,必填且有校验
 data() {let validatete = (rule, value, callback) => {let valimessage = validatePhone(this.basicInfoForm.mobile);if (valimessage !== '') {callback(new Error(valimessage));} else {callback();}};return {basicInforules: { mobile: [{ required: true, message: '请输入手机号码', trigger: 'blur' },{ validator: validatete, trigger: 'blur' },],  }, };},
5、el-input,不必填,但有是否输入正确的校验
 data() { return {basicInforules: {  email: [{ required: false, message: '请输入邮箱!', trigger: 'blur' },{validator: (rule, value, callback) => {const regExp = new RegExp(/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/);console.log(this.basicInfoForm.email);if (this.basicInfoForm.email == '' || this.basicInfoForm.email == undefined) {callback();} else {if (!regExp.test(this.basicInfoForm.email)) {callback(new Error('邮箱格式不正确'));} else {callback();}}},trigger: 'blur',},],}, };},
6、el-form清空校验
// 清除el-form所有表单内容,清空校验 this.$refs.formIndustrydata.resetFields();// 清除校验
this.$refs.formIndustrydata.clearValidate();// 清除对name的校验校验
this.$refs.formIndustrydata.clearValidate('name');//如果不生效加上nextTick
this.$nextTick(() => {         this.$refs.formIndustrydata.clearValidate();
});

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"el-input一些校验 事件":http://eshow365.cn/6-34597-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!