当前我有这个,如果值在35到49之间,则显示一条消息:
$(window).load(function() {
$("#amountInput").change(function(){
if(parseInt(this.value) > 34 && parseInt(this.value) < 50) {
$(".amountMessage").addClass("show");
} else {
$(".amountMessage").removeClass("show");
}
})
});
唯一的问题是,直到我单击输入后,才检查输入值。我需要在输入值更新时检查该值。 我尝试了keyup和keypress而不是更改,但是它似乎没有用,也许我做错了(可能是!)。任何帮助都将不胜感激!
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
有几种更改输入值的方法。 1.按键 2.粘贴
在第一种情况下,最好跟踪“ change”和“ keyup”(当您已经知道所按下的键并可以进行一些计算时)。在第二种情况下,您必须跟踪“输入”事件。
https://jsfiddle.net/ym3ukx54/
$('input').on("change keyup input",function() {
$('div').show();
});
答案 2 :(得分:0)
您需要使用input event而不是 change ,因为在更改值时会同时触发此事件。
您可以使用.toggleClass( className, state )
来添加或删除类<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$("#amountInput").on('input', function(e){
var state = parseInt(this.value) > 34 && parseInt(this.value) < 50;
$(".amountMessage").toggleClass("show", state);
})
$("#amountInput").on('input', function(e){
var state = parseInt(this.value) > 34 && parseInt(this.value) < 50;
$(".amountMessage").toggleClass("show", state);
})
.amountMessage {
display: none;
}
.show {
display: block;
}
答案 3 :(得分:0)
让jQuery处理该数字,除非这里将“ 37a”或“ 40 years”视为有效数字,否则不必处理parseInt函数。
.change()就像.blur()一样,它只有在失去焦点之后才触发,然后才改变值。
.keyup()对字段具有焦点的任何键的释放作出反应。
.input()也是不错的选择,但是如果您想对粘滞键或键盘上的人入睡或其他类似情况做出反应,它会更有用,因为它也可以通过按住按钮来捕获输入的数字。
$("#amountInput").keyup(function(){
$(".amountMessage").toggleClass("show", ($(this).val() > 35 && $(this).val() < 50));
});