该模式在输入数字中不起作用?

问题描述 投票:0回答:3

为什么输入数字中的模式不起作用,当我写1.11,1时我有服务器错误,因为在mvc控制器方法中我应该采用int类型。

<input type="number" name="Quantity" min="1" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="\d+" required />

所需的工作权利。

如何使模式只有整数值?

html regex html5
3个回答
1
投票

将输入包装在form中将使验证生效 - 它不会限制人们可以键入的内容,但如果输入的输入不是整数,它将停止提交表单。

const calc = () => alert("It worked!")
<form onSubmit="calc()">
  <input
    type="number"
    name="Quantity"
    min="1"
    title="Only ints please"
    placeholder="Type here..."
    pattern="\d+"
    required
  />
  
  <input type="submit">
</form>

如果你想首先限制输入内容,你需要更复杂的JavaScript - 请参阅this answer以获取如何执行此操作的示例。


0
投票

试试\d+([.,]\d+)?

“数字,可能后跟.,和更多数字”。


0
投票

您必须使用javascript,因为输入包含“1.1”或“1”而不是1.1或1.或者您可以将字符串转换为控制器中的int。

在JS中,您可以使用parseInt(number,base)等

let i = "42.5243";

let j = parseInt(i);
console.log(j); // 42

在评论中使用代码段编辑:

<input type="number" name="Quantity" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="\d+" required oninput="validity.valid ? this.save = value : value = this.save;" />

它不允许用户编码除整数之外的任何内容。

© www.soinside.com 2019 - 2024. All rights reserved.