将数字输入限制在范围内
Limit number input to range
我想将用户输入限制在特定范围内(-90到90)。数字可以是整数或十进制。默认值必须为0
。我不想使用HTML5 min
/max
属性。
这是我的HTML:
<input type="number" value="0" />
这就是我尝试过的:
$('input').on('input', function () {
var value = $(this).val();
$(this).val(Math.max(Math.min(value, 90), -90));
});
这是有缺陷的,因为它不允许我擦除默认值(因此我不能为负数输入-
,也不能为十进制数输入.
)。
所以我最终做了这个:
$('input').on('input', function () {
var value = $(this).val();
if ((value !== '') && (value.indexOf('.') === -1)) {
$(this).val(Math.max(Math.min(value, 90), -90));
}
});
这更好,但现在的问题是,我可以输入超出我定义范围的90.1
。
建议?
JSFiddle演示
当值超出范围时,只考虑修改值。这可以让你包括小数等
$('input').on('input', function () {
var value = this.value;
if (value !== '') {
value = parseFloat(value);
if (value < -90)
this.value = -90;
else if (value > 90)
this.value = 90;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="number" value="0" />
相关文章:
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- JS:从数组中查找特定范围内的最低/最高数字
- 试图检查表单中的值是否为一个设定范围内的数字
- 检查数字是否在特定范围内
- Javascript:如何获取输入范围内的最大值
- 检查值是否在某个数字的范围内
- 数字在范围内的条件 - Titanium/Javascript
- 如何在范围宽度内强制输入类型文本
- 如何在 jQuery 中选择输入范围内的值
- 如何检查对象中的所有数字是否都在一定范围内
- Javascript - 在一定范围内生成随机数,不包括某些数字
- 增加Math.random中某个数字在一定范围内的机会
- 在我更改数字输入时获取要更改的范围的内容
- 当数字在范围内时显示特定图像
- AngularJS中范围内的数字验证
- 如何获得 [0,1] 范围内的加密强数字
- 始终在 3K 数字范围内选择不同的数字
- Javascript验证-如何检查表单中输入的数字是否在一定范围内
- 将数字输入限制在范围内
- 限制用户在html输入中输入范围内的值(类型=数字)