我想创建一个输入字段,用户只能插入一个大于200且低于500的数字。我的问题是如果我想写例如" 230"然后这个领域不允许我这样做,因为它认为我想写'" 2"。
var t = false
$('.myinput').focus(function () {
var $this = $(this)
t = setInterval(
function () {
if (($this.val() < 200 || $this.val() > 500)) {
if ($this.val() < 200) {
$this.val(200)
}
if ($this.val() > 500) {
$this.val(500)
}
$('.error').fadeIn(1000, function () {
$(this).fadeOut(500)
})
}
}, 50)
})
$('.myinput').blur(function () {
if (t != false) {
window.clearInterval(t)
t = false;
}
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="myinput" type="number" value="200" min="200" max="500">
<p class="error" style="display:none">Accepting Only values 200-500</p>
&#13;
答案 0 :(得分:1)
为什么不使用范围?
$('p').text($('input[type="range"]').val());
$('input[type="range"]').on('change', function(){
val = $('input[type="range"]').val();
$('p').text(val);
});
<script src="http://code.jquery.com/jquery-3.1.1.js"></script>
<input type="range" min="200" max="500"/>
<p></p>
答案 1 :(得分:1)
尝试以下代码,
$('.myinput').keypress(function(event){
if(event.which != 8 && isNaN(String.fromCharCode(event.which))){
event.preventDefault(); //stop character from entering input
}
var value = $(this).val();
if (value > 200 && value < 500) { // check numbers between 200 and 500
..
}
$('.error').fadeIn(1000, function () {
$(this).fadeOut(500)
})
});
答案 2 :(得分:0)
使用指定最小/最大的number
输入字段
<input type="number" min="200" max="500" />
&#13;