1

我正在尝试在 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 数字 | 真正的布尔值”而不是“100 字符串 | 真正的字符串”。你能帮我定义自定义函数吗?

感谢您的帮助 !尼古拉斯

4

1 回答 1

3

value输入元素的属性始终存储为字符串,因此typeof始终返回“字符串”。您需要编写一个自定义函数来查看该字符串的内容并相应地确定正确的类型。这样的事情可能就足够了,尽管我可能错过了一两个案例:

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;
}

jsFiddle 演示

于 2013-10-22T09:04:18.797 回答