如何获取数字输入值作为数字而不是字符串?
How can I get a number input value as a number instead of a string?
给定一个数字输入:
<input type="number" id="create-y-small" name="create-y-small" value="0">
如何获取输入的数字值?下面returns一个字符串:
$("#create-y-small").val()
为什么这是默认行为?当然应该期望数字类型输入给出一个数字?
我在别处寻找答案但没有找到答案:
Input value is a string instead of a number -
答案使用解析来解析为数字。我不想解析为数字我只想将数字作为数字获取。
- OP 似乎很高兴获得字符串形式的值
- 同样的故事
所有输入元素都以HTMLreturn一个字符串作为它们的值。如果你想要结果为int,你必须转换它。
parseInt($("#create-y-small").val())
您可以使用 jQuery 的 valHooks
来更改 jQuery return 的值。
$.valHooks.number = {
get: function( elem ) {
return elem.value * 1;
}
};
您只需在代码中执行一次,然后所有 type=number
输入都将 return 改为一个数字。
console.log(
"num is a string",
$("#num").val() === "1",
$("#num").val() === 1,
$("#txt").val() === "1",
$("#txt").val() === 1)
$.valHooks.number = {
get: function( elem ) {
return elem.value * 1;
}
};
// confirm no neffect on type='text'
console.log(
"num is a number",
$("#num").val() === "1",
$("#num").val() === 1,
$("#txt").val() === "1",
$("#txt").val() === 1)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='number' id='num' value="1">
<input type='text' id='txt' value="1">
给定一个数字输入:
<input type="number" id="create-y-small" name="create-y-small" value="0">
如何获取输入的数字值?下面returns一个字符串:
$("#create-y-small").val()
为什么这是默认行为?当然应该期望数字类型输入给出一个数字?
我在别处寻找答案但没有找到答案:
Input value is a string instead of a number - 答案使用解析来解析为数字。我不想解析为数字我只想将数字作为数字获取。
所有输入元素都以HTMLreturn一个字符串作为它们的值。如果你想要结果为int,你必须转换它。
parseInt($("#create-y-small").val())
您可以使用 jQuery 的 valHooks
来更改 jQuery return 的值。
$.valHooks.number = {
get: function( elem ) {
return elem.value * 1;
}
};
您只需在代码中执行一次,然后所有 type=number
输入都将 return 改为一个数字。
console.log(
"num is a string",
$("#num").val() === "1",
$("#num").val() === 1,
$("#txt").val() === "1",
$("#txt").val() === 1)
$.valHooks.number = {
get: function( elem ) {
return elem.value * 1;
}
};
// confirm no neffect on type='text'
console.log(
"num is a number",
$("#num").val() === "1",
$("#num").val() === 1,
$("#txt").val() === "1",
$("#txt").val() === 1)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type='number' id='num' value="1">
<input type='text' id='txt' value="1">