我想将用户输入限制在特定范围(-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
。
建议?
答案 0 :(得分:3)
当值超出范围时,请考虑仅修改值。这允许您包括小数等。
$('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" />