为什么输入编号中的模式不起作用,当我编写 1.1
, 1,1
时,我有服务器错误,因为在MVC控制器方法中,我应该使用int
类型。
<input type="number" name="Quantity" min="1" title="Пожалуйста, введите количество" placeholder="кол-во" pattern="d+" required />
所需的工作正确。
如何使模式仅具有整数值?
将您的输入包装在form
中会使验证生效 - 它不会限制人们可以输入的内容,但是如果在ISN'中键入输入的输入,它将阻止表单被提交。t整数。
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 - 请参阅此答案,以获取有关如何执行此操作的示例。
尝试d+([.,]d+)?
。
"数字,可能是.
或,
以及更多数字"。
您必须使用JavaScript,因为输入包含" 1.1"或" 1",而不是1.1或1。或者您可以将字符串转换为控制器中的INT。
在JS中,您可以使用Parseint(数字,基础),例如
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;" />
它不允许用户编码整数以外的其他任何内容。