我在前端使用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',请告诉我,因为这更加严格。

最佳答案

尝试这个:

<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
    }
},

关于javascript - 在表单输入中键入电话号码时,删除字母“e”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46969091/

10-12 13:40