我想使用Jquery设置一个输入类型number
的值。当值的长度超过15个字符时,它不起作用。
以下是我的示例代码:
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#user").val(11111111111111444444444888888888);
});
});
</script>
</head>
<body>
<p>Name: <input type="number" id="user" ></p>
<button>Set the value of the input field</button>
</body>
</html>
结果是:
11111111111111400000000000000000
对我来说意外。为什么它在15个字符后变为零?当数字的长度小于15时,它工作正常。我尝试使用min
和max
属性,但这也不起作用。
有什么想法吗?
答案 0 :(得分:0)
我认为这是因为javascript数字总是64位浮点数。
与许多其他编程语言不同,JavaScript没有定义不同类型的数字,如整数,短整数,长整数,浮点数等。
JavaScript编号始终存储为双精度浮点数,符合国际IEEE 754标准。
示例:
TopShelf
从W3Schools收集的解释和示例。
也许您可以将var x = 999999999999999; // x will be 999999999999999
var y = 9999999999999999; // y will be 10000000000000000
添加到''
,以便将值作为字符串传递。
答案 1 :(得分:0)
由于Goediaz对此行为有解释,
您可能希望将其作为字符串放在val()
中。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#user").val(11111111111111444444444888888888);
console.log("Number:", $("#user").val());
$("#user").val("11111111111111444444444888888888");
console.log("String:", $("#user").val());
});
});
</script>
</head>
<body>
<p>Name: <input type="number" id="user" ></p>
<button>Set the value of the input field</button>
</body>
</html>