【问题标题】:How to validate Input type number in vuejs- if input has invalid number如何验证 vuejs 中的输入类型编号 - 如果输入的编号无效
【发布时间】:2019-05-14 08:18:15
【问题描述】:

我正在尝试验证输入类型编号。举个例子,我在 vuejs 中遇到了什么。

<input type="number" v-model="form.vat_id"/>
<!-- this is an error message for required -->
<p class="error" v-if="form.vat_id == ''">VAT ID is required</p>
<!-- this is an error message for invalid number -->
<p class="error" v-if="Number.isNaN(parseInt(form.vat_id)) && form.vat_id != ''">Please Enter Valid Number</p>

现在,即使form.vat_id 的号码无效,它也只显示一条必需的消息。在这里,我测试了 vuejs 中的无效数字返回空字符串,但输入在 UI 中显示无效数字。因此,我无法在此处提供正确的消息。我应该在这里做什么。

如果我在第二条错误消息中删除 &amp;&amp; form.vat_id != '',那么两条消息都会在两种情况下都显示 - 空且号码无效

【问题讨论】:

  • 我认为您的代码没有错误。也许问题出在 Javascript 中。
  • 输入类型为“数字”我认为没有办法输入非数字字符(没有黑客)。空字符串被视为有效数字,就像 0 一样,因此将显示第一条所需的消息。
  • 如果您确实需要验证增值税号,请考虑使用this component
  • 您可以使用 v-if 和 v-else-if 并检查输入字段上模糊事件的 vat_id 并根据该事件显示消息。
  • @PulkitAggarwal 这就是我要说的人...如果我输入任何非数字字符,则 v-model 值将变为空...假设-您在输入框中输入了 123456e 然后 form.vat_id 是给出空字符串..

标签: javascript validation vuejs2


【解决方案1】:

你可以多取两个变量,即。 vatError 和 vatErrorMsg 分别具有默认值 false 和空字符串。

// In your template

   <input type="text" v-model="form.vat_id" @keyup="checkVatId"/>
   <p class="error" v-if="vatError">{{vatErrorMsg}}</p>

// Now define the method checkVatId

   checkVatId() {
      var vatIdRegex =  // here your vat_id regex.
      if (this.form.vat_id == ''){
        this.vatError = true;
        this.vatErrorMsg = "VAT ID is required.";
      } else if(!vatIdRegex.test(this.form.vat_id)) {
        // Run when user input is not matched with vat id regex.
        this.vatError = true;
        this.vatErrorMsg = "Please Enter Valid Number.";
      } else {
        this.vatError = false;
      }
   }

【讨论】:

  • 谢谢,但是输入类型文本已经完成了 - 现有代码对于输入类型文本工作正常。所以,我正在寻找输入类型编号 - 这对于使用 html5 和 vuejs 都很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2014-03-04
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多