2014-09-29 89 views
1

考慮下面的代碼: HTML:隱藏欄元素與價值數總是返回字符串

<input type="hidden" value=3 name="hello" id="test"/> 
<input type="button" value="test me!" onclick="checkType();" /> 

JS:

function checkType(){ 
    var num = document.getElementById("test").value; 
    alert(typeof num + ": " + num); 

} 

或參閱本fiddle

正如你所看到的,我爲HTML隱藏元素的value屬性放置了一個數字。 我研究過關於這件事,除了使用typeof函數來展示我看到的東西是什麼樣的數據類型。

我不知道它是否也是有效的,無論如何,在值屬性中放置一個未聯繫的號碼。

,但我想完成的事情是,存儲從UI隱藏掉一些,然後把它收回,並正確地顯示它的編號回到屏幕..

了目前正在尋找3天左右,而橡皮鴨子*迄今還沒有任何效果。 而我的辦公室裏沒有JS大師。

最好的問候,

+6

所有的輸入值都是字符串。無論您爲其分配什麼值,都會將其轉換爲字符串。 – 2014-09-29 03:18:56

+0

將其轉換回整數。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt – beaglebets 2014-09-29 03:22:54

+0

嗨,先生,你有什麼想法,我怎麼能動態轉換東西int,當他們是int,否則作爲字符串。使用typeof函數只是失敗 – 2014-09-29 03:38:56

回答

5

正如p.s.w.g說,輸入值是字符串。如果你真的想將它轉換爲數字類型,只需使用一元+運算符。

var num = +document.getElementById("test").value; 

更新小提琴這裏:http://jsfiddle.net/0h61xwkg/3/

+0

你有什麼想法如何動態測試隱藏字段中的值是數字還是字符串? – 2014-09-29 03:31:20

+0

@李鎮你可以使用一個正則表達式,然後將其轉換爲數字。 '/^\ d + $ /'如果你只關心整數。如果你想測試浮點數,它會稍微複雜一些。/^\ d * \。\ d + $ |^\ d + \。\ d * $ /'。 – 2014-09-29 03:53:01

+0

對於可能絆倒的其他讀者:如果要從隱藏元素的屬性值(或者我猜想的任何元素)知道值是數字還是字符串,請使用「+」一元運算符。它與字符串一起使用時返回「NaN」,否則返回數字。看看這個小提琴:http://jsfiddle.net/0h61xwkg/5/ – 2014-09-29 03:55:26