我正在尝试在Javascript中检索我的HTML表单输入的类型以供进一步使用。我不是在谈论HTML输入的 type 属性,而是使用 typeof JS运算符获得的变量类型。
我正在使用下面的代码来测试它:
<form oninput="test();" name="myform">
<input name="anumber" value="100">
<input name="aboolean" value="true">
</form>
<div id="message"></div>
<script type="text/javascript">
function test(){
anumber = document.myform.anumber.value;
aboolean = document.myform.aboolean.value;
document.getElementById("message").innerHTML = anumber + " " + typeof(anumber) + " | " + aboolean + " " + typeof(aboolean)
}
</script>
在我的梦中,这显示:“100 number | true boolean”而不是“100 string | true string”。你能帮我定一下自定义功能吗?
感谢您的帮助! 尼古拉斯
答案 0 :(得分:2)
输入元素的value
属性始终存储为字符串,因此typeof
始终返回“string”。您需要编写一个自定义函数来查看该字符串的内容并相应地确定正确的类型。这样的事情可能就足够了,尽管我可能错过了一两个案例:
function getInputType(value) {
if(value === "")
return "";
else if(value === "true" || value === "false")
return "boolean";
else if(!Number.isNaN(Number(value)))
return "number";
else
return typeof value;
}