这个问题在这里已有答案:
当你有:
<input type="number" id="myInput" />
而你填写了一些垃圾:8,5,.,.,.,54.,543,.4
然后$('#myInput').value
将返回''
这意味着它被视为用户没有填写任何东西,弄乱我的表单验证。
如何检索实际输入?
可以在这里找到codePen,你可以检查它确实打印出一个空字符串的控制台:https://codepen.io/anon/pen/EQrrXz?editors=1111
我在使用chrome,但在safari上也会发生这种情况。
我仍然希望能够接受正常数字输入,包括小数。
你把字符串放入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" />