假设我有一个输入标签,其type属性设置为“number”:
<input type="number" id="num-of-units"></input>
我想获取当前数值并将其与其他一些数值进行比较:
if (document.getElementById("num-of-units").value > 0) ...
我可以安全地假设'value'是数字类型而不是字符串类型,还是我必须转换它?
P.S。:我意识到我可以在Firefox或其它东西上测试它,但我想确定标准是什么。
由于
答案 0 :(得分:5)
.value
字段的 <input>
都是字符串。 type
属性可帮助浏览器控制放入输入字段的内容或用于访问输入元素的输入助手的类型(例如,数字的微调控件),但不会更改{.value
的类型1}}。
演示测试:http://jsfiddle.net/jfriend00/2k66J/
如果您想亲眼看看,请在Firefox,IE,Chrome等中运行该演示......他们都说这是string
类型。如果你想要数值,你只需将它自己转换为数字。
答案 1 :(得分:2)
没有。输入元素type =“number”的value属性将在javascript中作为字符串类型值检索。您必须将其转换为数字数据类型(int,float)才能将其用作此类。
答案 2 :(得分:1)
您的问题分为两部分:
第1部分:
我可以安全地假设'value'是数字类型而不是a 字符串类型,还是我必须转换它?
答案:不,是的。
不,你无法安全地承担。因为它实际上是一个字符串。 input
s上的值是字符串。
此外,因为它将忽略非数字值并返回一个空字符串。因此,如果存在非数字条目,您还必须检查空字符串。
是的,你必须转换它。
检查这个小提琴: http://jsfiddle.net/abhitalks/2k66J/10/
第2部分:
P.S。:我意识到我可以在Firefox或其他东西上测试它,但是我 想要确定标准是什么
@dystroy在评论中提到了该标准。无论如何,这是标准所说的:
http://www.w3.org/wiki/HTML/Elements/input/number
向下滚动到值所示的值:
value = string
答案 3 :(得分:-2)
标准对此一无所知。看看Ecma-262 revision 5。
简短的回答是你无法确定。
答案 4 :(得分:-2)
仔细检查你的价值总是更安全;
1)检查值是否为“”或null;
2)如果您正在使用服务器,即使在验证了您的值后,请在后端仔细检查它,特别是如果该值将被插入您的数据库。
从技术上讲,你很高兴,它会被html5验证为数字。
希望这有帮助!
编辑:不要忘记您的Var是Javascript。