在表单输入中键入电话号码时,请删除字母“e”

时间:2017-10-27 06:49:26

标签: javascript validation vue.js

我在VueJS和Element io的前端构建了一个应用程序。我试图验证电话号码但我看到那封信你可以在表格输入中输入字母e。

我尝试删除用户输入的最后一个字母,'e',或者如果我发现'e',则不让用户输入该字母。

我尝试了一些我在互联网上找到的但没有用的东西。

这是最新尝试的输入,仍然无法验证:

<el-input 
  v-model="newUser.phone"  
  type="number"
  v-validate="{required: true, max: 13}"  
  name="Phone" 
  @keyup="newUser.phone ? newUser.phone.substring(newUser.phone.length, newUser.phone.length -1) : 'true'">
  <template slot="prepend">07</template>
</el-input>

这是我用vee-validate试过的上一版本,因为电话号码无效,所以不让用户提交表格:

<el-input 
  v-model="newUser.phone"  
  v-validate="{required: true, max: 13, regex: /^\d+$/}"  
  name="Phone" 
  :class="{redBorder: errors.has('Phone')}" >
  <template slot="prepend">07</template>
</el-input>

这有效,我收到错误,输入:The Phone field format is invalid

如果有人知道如何删除“e”或者不让用户输入“e”,请告诉我,因为这更严格。

1 个答案:

答案 0 :(得分:1)

试试这个:

<el-input 
v-model="newUser.phone"  
type="number"
v-validate="{required: true, max: 13}"  
name="Phone"
v-on:keypress="isNumber(event)">
<template slot="prepend">07</template>
</el-input>

在方法函数中:

isNumber: function(evt) {
    evt = (evt) ? evt : window.event
    var charCode = (evt.which) ? evt.which : evt.keyCode
    if ((charCode > 31 && (charCode < 48 || charCode > 57)) && charCode !== 46) {
        evt.preventDefault()
    } else {
        return true
    }
},