我有一个函数,目前正在处理.keypress事件,当用户在文本框中正确的东西,它做了一些代码,但我希望相同的事件也被触发时,用户清除文本框.change没有帮助,因为它触发后,用户改变焦点到其他东西
谢谢
发布于 2013-01-02 11:14:15
Jonathon Bolster的解决方案并不能涵盖所有情况。我对其进行了调整,以涵盖通过剪切和粘贴进行的修改:
$("#inputname").on('change keyup copy paste cut', function() {
//!this.value ...
});
请参阅http://jsfiddle.net/gonfidentschal/XxLq2/
不幸的是,不可能捕捉到使用javascript设置字段的值的情况。如果你自己设置值,这不是问题,因为你知道什么时候你做了……但是,当您使用AngularJS这样的库来在状态改变时更新视图时,它可能需要更多的工作。或者您必须使用计时器来检查该值。
另请参阅Detecting input change in jQuery?的答案,它建议使用现代浏览器可以理解的“输入”事件。所以只要:
$("#inputname").on('input', function() {
//!this.value ...
});
发布于 2017-01-31 07:37:01
另一种简洁的方法是侦听textarea/input-type:文本字段上的"input“事件
/**
* Listens on textarea input.
* Considers: undo, cut, paste, backspc, keyboard input, etc
*/
$("#myContainer").on("input", "textarea", function() {
if (!this.value) {
}
});
发布于 2020-04-12 06:30:48
您可以检查on input‘function()中输入字段的值,并将其与if/else语句相结合,它将在下面的代码中工作得很好:
$( "#myinputid" ).on('input', function() {
if($(this).val() != "") {
//Do action here like in this example am hiding the previous table row
$(this).closest("tr").prev("tr").hide(); //hides previous row
}else{
$(this).closest("tr").prev("tr").show(); //shows previous row
}
});
https://stackoverflow.com/questions/4403444
复制相似问题