Javascript 从HTML表单获取输入的类型

Javascript 从HTML表单获取输入的类型,javascript,html,forms,Javascript,Html,Forms,我试图用Javascript检索HTML表单输入的类型,以供进一步使用。我说的不是HTML输入的type属性,而是使用typeof JS操作符得到的变量类型 我正在使用下面的代码来测试它: <form oninput="test();" name="myform"> <input name="anumber" value="100"> <input name="aboolean" value="true"> </form> <div id

我试图用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>

功能测试(){
anumber=document.myform.anumber.value;
aboolean=document.myform.aboolean.value;
document.getElementById(“message”).innerHTML=anumber+“”+typeof(anumber)+“|”+aboolean+“”+typeof(aboolean)
}
在我的梦中,它显示“100数字|真布尔值”而不是“100字符串|真字符串”。你能帮我定义自定义函数来制作它吗

谢谢你的帮助!
Nicolas

输入元素的
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;
}

input type=“text”
=text<代码>输入类型='checkbox'=布尔值。请参阅:输入元素的值存储为字符串。您必须编写一个自定义函数,根据字符串的值确定您的类型。谢谢@AnthonyGrist,这正是我想要在这里找到的。我重新编排了我的问题,让它更清楚。非常感谢。祝您有个美好的一天。