JSFiddle 不允许我设置输入值
JSFiddle does not let me set input value
我正在我的一个页面中实现 Jquery 数字框。我必须从具有最小值和最大值的用户那里获取数字输入。问题是我设置了最小值并尝试使用键盘输入值,它自动显示最小值而不让我输入完整值。
例如在演示中:Demo Link Here
max = $this.spinner('option', 'max'),
min = $this.spinner('option', 'min');
Min 设置为 100,Max 设置为 1000,但是如果我想从键盘输入 500,一旦我按下 5,它会自动设置它的值 100。
有没有人遇到同样的问题?
我会将您代码中的 .on('input'...)
更改为 .on('blur'...)
,并且只有在我知道用户 "finished" 输入他的输入之后才更改值,而不是像您的那样在此之前例如。
我对你的代码做了一些修改,试试这个 plunker:
HTML:
<input type="text" value="0" >
JS:
$("input").spinner({
max: 1000,
min: 100
}).on('blur', function () {
if ($(this).data('onInputPrevented')) return;
var val = this.value,
$this = $(this),
max = $this.spinner('option', 'max'),
min = $this.spinner('option', 'min');
// only allow numbers
$(this).val($(this).val().replace(/[^0-9]/g, ''));
// check input value
if(val< 100 ){
console.log(val.toString().length)
if(val.toString().length == 1)
$("input").val(val + 0 + 0);
if(val.toString().length == 2)
$("input").val(val + 0);
}
});
我正在我的一个页面中实现 Jquery 数字框。我必须从具有最小值和最大值的用户那里获取数字输入。问题是我设置了最小值并尝试使用键盘输入值,它自动显示最小值而不让我输入完整值。
例如在演示中:Demo Link Here
max = $this.spinner('option', 'max'),
min = $this.spinner('option', 'min');
Min 设置为 100,Max 设置为 1000,但是如果我想从键盘输入 500,一旦我按下 5,它会自动设置它的值 100。
有没有人遇到同样的问题?
我会将您代码中的 .on('input'...)
更改为 .on('blur'...)
,并且只有在我知道用户 "finished" 输入他的输入之后才更改值,而不是像您的那样在此之前例如。
我对你的代码做了一些修改,试试这个 plunker:
HTML:
<input type="text" value="0" >
JS:
$("input").spinner({
max: 1000,
min: 100
}).on('blur', function () {
if ($(this).data('onInputPrevented')) return;
var val = this.value,
$this = $(this),
max = $this.spinner('option', 'max'),
min = $this.spinner('option', 'min');
// only allow numbers
$(this).val($(this).val().replace(/[^0-9]/g, ''));
// check input value
if(val< 100 ){
console.log(val.toString().length)
if(val.toString().length == 1)
$("input").val(val + 0 + 0);
if(val.toString().length == 2)
$("input").val(val + 0);
}
});