【问题标题】:Html input number to accept only natural number or with ,25 or ,5Html 输入数字仅接受自然数或带有 ,25 或 ,5
【发布时间】:2020-04-10 08:03:59
【问题描述】:

我正在寻找使我的输入字段只接受自然数或以 ,25 或 ,5 结尾的数字的东西。 我必须用它来插入时间段,而且必须只取四分之一、一半或自然数。

  <input type="number" name="quantity" min="0" max="10">

非常感谢。

【问题讨论】:

  • 感谢您的快速回复,我确实喜欢这样:。我尝试了数字或文本。文字说我不尊重模式,prolly 有什么不正确的?

标签: java php html design-patterns input


【解决方案1】:

首先,您应该在 php 方面做一些事情来拒绝错误的输入。这应该相当容易。这是为了防止可能是因为超级旧的浏览器不支持破坏客户端检查的javascript。

但由于您还希望在提交之前完成检查,因此您应该使用 Javascript 表单验证。这发生在浏览器上,以防止用户提交错误的表单。可以看教程right there。下面介绍一种更方便的方式,但可以使用 JS 方式作为后备方式。

对于支持 HTML5 的较新浏览器,您可以在输入时使用 pattern attribute。它使用正则表达式来检查来自用户的值。以下正则表达式可能不是最佳解决方案,但应该可以满足您的要求:

^([0-9]+,?|,)(25|5)?$

【讨论】:

  • 我发现 type="number" min="0" step="0.25" 有点妥协,但我不需要插入 0.75,建议?
  • 我认为将“模式”属性设置为此正则表达式,并将其类型设置为“文本”应该可以完成工作。我在正则表达式上犯了一个错误。我更新了答案,请重试。另外,你应该在 php 上使用preg_match 再次检查它,因为某些浏览器可能不支持表单检查。
  • 此正则表达式将匹配 ,255,2512 等。如果您不希望它匹配 ,25 替换 |, 部分。如果您还想匹配.,请将, 替换为[.,]。我已经在我的浏览器上测试了它,它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-20
  • 2019-12-14
  • 2016-02-26
  • 1970-01-01
  • 2017-05-18
  • 2022-01-09
  • 1970-01-01
相关资源
最近更新 更多