为什么输入数字中的模式不起作用,当我写1.1
,1,1
时我有服务器错误,因为在mvc控制器方法中我应该采用int
类型。
<input type="number" name="Quantity" min="1" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="\d+" required />
所需的工作权利。
如何使模式只有整数值?
将输入包装在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以获取如何执行此操作的示例。
试试\d+([.,]\d+)?
。
“数字,可能后跟.
或,
和更多数字”。
您必须使用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;" />
它不允许用户编码除整数之外的任何内容。