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



为什么输入编号中的模式不起作用,当我编写 1.11,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;" />

它不允许用户编码整数以外的其他任何内容。

相关内容

最新更新