2013-10-22 38 views
0

我試圖在Javascript中檢索我的HTML表單輸入的類型以供進一步使用。我不是在談論類型 HTML輸入的屬性,而是您獲得的變量類型typeof JS運算符。從HTML表單獲取輸入的類型

我用下面的代碼進行測試:

<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串|真串」。你能幫我定義自定義函數嗎?

感謝您的幫助! Nicolas

+0

http://dreamscometrue.uk.com/ – Abhitalks

+0

'輸入類型= 「文本」'=文本。 'input type ='checkbox'' =布爾值。請參閱:http://jsfiddle.net/ZUJzF/ – Abhitalks

+2

來自輸入元素的值存儲爲字符串。您必須編寫一個自定義函數,根據字符串的值確定您的類型。 –

回答

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

jsFiddle demo

+0

非常感謝。祝你今天愉快。 –