校验固定电话的2个输入框,一个字段

vue中校验固定电话前后的两个输入框,在父页面只允许校验一个字段,

解决方案:可以选择组件传值

这里面 input组件默认接受的值叫做——————props:{value}

子组件向父组件用$emit方法传值———————input,将分割成的两个值组成一个值默认传给父组件中的那个值“telephone”

父组件中

    <el-col :span="12">
                <el-form-item label="固定电话:" prop="telephone">
                  <telephone-input v-model="addForm.telephone"></telephone-input>
                </el-form-item>
    </el-col>

子组件中

<template>
  <el-row>
    <el-col :span="4">
      <el-input v-model="areaCode"></el-input>
    </el-col>
    <el-col :span="2" class="line">
      <span>-</span>
    </el-col>
    <el-col :span="18">
      <el-input v-model="phoneCode"></el-input>
    </el-col>
  </el-row>
</template>

<script>
export default {
  name: 'telephone-input',
  props: {
    value: {
      type: String,
      default: ''
    }
  },
  computed: {
    areaCode: {
      get: function () {
        if (this.value) {
          let numberArr = this.value.split('-')
          if (numberArr.length) {
            return numberArr[0]
          } else {
            return undefined
          }
        }
      },
      set: function (newValue) {
        this.$emit('input', newValue + '-' + this.phoneCode)
      }
    },
    phoneCode: {
      get: function () {
        if (this.value) {
          let numberArr = this.value.split('-')
          if (numberArr.length) {
            return numberArr[1]
          } else {
            return undefined
          }
        }
      },
      set: function (newValue) {
        this.$emit('input', this.areaCode + '-' + newValue)
      }
    }
  },
  methods: {}
}
</script>

<style scoped>
  .line {
    text-align: center;
    line-height: 30px;
  }
</style>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对表格字段进行输入校验可以通过以下步骤实现: 1. 在表格中将要进行校验字段设置为可编辑的输入框,并绑定一个 v-model 指令,用于实时获取输入框的值。 2. 在需要校验的时候,通过正则表达式或其他方式校验输入框的值是否符合要求。 3. 如果输入框的值不符合要求,可以通过弹窗、提示框等方式提示用户输入不合法,并将输入框的值重置为之前的值,或者让用户重新输入。 以下是一个简单的示例代码,以手机号码为例进行校验: ``` <template> <div> <table> <thead> <tr> <th>姓名</th> <th>手机号码</th> </tr> </thead> <tbody> <tr v-for="(item, index) in list" :key="index"> <td>{{ item.name }}</td> <td> <input type="text" v-model="item.phone" @blur="checkPhone(item)" /> </td> </tr> </tbody> </table> </div> </template> <script> export default { data() { return { list: [ { name: '张三', phone: '13888888888' }, { name: '李四', phone: '13999999999' }, { name: '王五', phone: '13000000000' } ] } }, methods: { checkPhone(item) { const reg = /^1[3-9]\d{9}$/ // 手机号码正则表达式 if (!reg.test(item.phone)) { alert('请输入正确的手机号码') item.phone = '' // 重置输入框的值 } } } } </script> ``` 在上面的示例代码中,通过在输入框上绑定 @blur 事件,在输入框失去焦点时触发校验手机号码的方法 checkPhone。如果手机号码不符合要求,弹出提示框,并重置输入框的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值