当我在输入中添加一个数字时,它不会改变保持在5的值,当我进入控制台并键入uw.value时,我得到“6”而不是6,我在输入中输入网络如何获得一个数字而不是一个字符串?
<form>
<input type="number" id="wakken" type="number" value=5><br>
<input max="30" min="0" name="ijsberen" placeholder="Ijsberen" id="ijsberen" type="number" value= "5"><br>
<input max="30" min="0" name="wakken" placeholder="Penguins" id="penguins" type="number" value= 0><br>
<input type="button" value="submit" onclick="check()">
</form>
var uw = document.getElementById("wakken")
var ui = document.getElementById("ijsberen")
var up = document.getElementById("penguins")
答案 0 :(得分:7)
结帐HTMLInputElement.valueAsNumber
:
元素的值,按顺序解释为以下之一:
- 时间值
- 一个数字
- 如果无法转换,则为null
醇>
var testInput = document.getElementById("test-input");
function handleInput(e){
var value = this.valueAsNumber;
console.log("type: %s, value: %o", typeof value, value);
}
testInput.addEventListener("input", handleInput);
handleInput.call(testInput);
<input type="number" id="test-input" type="number" value=5>
对于非数字或非有限数字,这将返回NaN
。
答案 1 :(得分:4)
由于输入 HTMLElement.value
会返回“字符串” ....
<强> jsbin demo 强>
使用
将"String" number
转换为Number
parseInt(value, 10); // for (whole) integer numbers
parseFloat(value); // for (point) floated numbers
Number(value); // to Number Object
或只是在值之前添加unary +
:
+value; // instead of parseInt()
要完全确定您的value
是一个数字,您也可以这样做:
if(!isNaN(parseFloat(el.value)) && isFinite(el.value)){
/*true if element's value is a number (or a number in string) */
}
例如:
var uw = document.getElementById("wakken");
var ui = document.getElementById("ijsberen");
var up = document.getElementById("penguins");
function check() {
// Log Strings
console.log(uw.value); // "5"
console.log(ui.value); // "5"
console.log(up.value); // "0"
// Log Numbers
console.log(Number(uw.value)); // 5
console.log(+uw.value); // 5
console.log(parseInt(ui.value, 10)); // 5
console.log(parseFloat(up.value)); // 0
}
不要忘记:阅读文档
parseInt()
parseFloat()
Number()
Arithmetic operators
答案 2 :(得分:3)
您可以将值从字符串转换为数字,使用parseFloat(value)
表示小数,或parseInt(value)
表示整数。
例如:
// uw will refer to the numerical value of the element with id = wakken
var uw = parseInt(document.getElementById("wakken").value);
答案 3 :(得分:0)
var uw = parseInt(document.getElementById("wakken").value, 10); // (value, radix)
if (typeof uw === "number") console.log("works! 'uw' is an int");
log log“有效!'uw'是一个int”,因为我们收集了值并使用parseInt(_: String)
将其转换为int。