【问题标题】:0 as first number in Vue model0 作为 Vue 模型中的第一个数字
【发布时间】:2021-11-11 09:55:14
【问题描述】:

我正在尝试在表单中输入荷兰语 phoneNumber 字段。但是当我输入第一个数字 0 时,它会在我输入第二个数字时被删除。

荷兰电话号码:06 + 8 位 (0612345678) 或 0 + 2 位(地区代码)+ 7 位 (012 1234567) 或 316 + 8 位 (31612345678)。

<el-input
 v-model.number="form.phoneNumber"
 @keypress="isPhoneNumber(form.phoneNumber)"
 :placeholder="$t('phonenumber')"
></el-input>

用这个作为验证器:

phoneNumber: [
 {
   required: true,
   type: "text",
   pattern: "^(?:0|(?:\+|00) ?31 ?06 ? )(?:(?:[1-9] ?(?:[0-9] ?){8})|(?:6 ?-? ?[1-9] ?(?:[0-9] ?){7})|(?:[1,2,3,4,5,7,8,9]\d ?-? ?[1-9] ?(?:[0-9] ?){6})|(?:[1,2,3,4,5,7,8,9]\d{2} ?-? ?[1-9] ?(?:[0-9] ?){5}))$",
   message: this.$t("please_fill_a_phonenumber"),
   trigger: "blur",
 },
],

有什么明显的我忽略了吗?

【问题讨论】:

  • 您正在使用数字输入字段 (v-model.number)。数字没有前导零。
  • ^^ 罗比所说的:vuejs.org/v2/api/#v-model: ".number - 将有效的输入字符串转换为数字" 电话号码不是数字(尽管有“数字”这个词以名称)。

标签: javascript vue.js element-io


【解决方案1】:

请访问How to Form Input Bindings? 上的官方 Vue.js 文档,了解如何正确使用 v-model 指令和修饰符。因为您使用的是 .number 修饰符。另外,请访问元素库的官方文档element.eleme.io,了解如何使用el-formel-input 元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多