【问题标题】:Html input type="number" returns empty string as value [duplicate]Html输入类型=“数字”返回空字符串作为值[重复]
【发布时间】:2018-08-09 13:53:50
【问题描述】:

当你有:

<input type="number" id="myInput" />

你填写了一些垃圾,比如: 8,5,.,.,.,54.,543,.4

然后$('#myInput').value 将返回'' 这意味着它被视为用户没有填写任何内容,从而扰乱了我的表单验证。

如何检索实际输入?

可以在这里找到codePen,您可以检查控制台是否确实打印了一个空字符串:https://codepen.io/anon/pen/EQrrXz?editors=1111

我在 chrome 上,但在 safari 上也会发生这种情况。

我仍然希望能够接受正常的数字输入,包括小数。

【问题讨论】:

  • 将类型更改为文本...?
  • @NinaScholz 如何解决 type="number" 的问题?

标签: javascript html validation input


【解决方案1】:

您将字符串放入不正确的 type='number' 中。

执行此操作时,您会在控制台中收到此错误。

指定的值“8,5,.,.,.,54.,543,.4”不是有效数字。该值必须与以下正则表达式匹配:-?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?

您可以改为 type='text' 或将纯数字改为 type='number'

示例:

console.log(document.getElementById('myInput').value)
<input type="text" id="myInput" value="43.,.,,.,.5" />

【讨论】:

  • 感谢您的回复,但我当然无法控制我的用户不要在里面放垃圾。我想获得实际填写的值,以便我可以给出适当的指示来告诉用户修复他们的输入。将其更改为文本不是一种选择。这会消除您获得的额外功能,尤其是在移动设备上。
  • @WouterWillems 那么在这种情况下你必须使用 js 验证输入,看看这个stackoverflow.com/questions/13952686/…
猜你喜欢
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 2017-04-02
  • 2020-11-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
相关资源
最近更新 更多