如何绑定到jQuery中文本区域的更改事件?演示
2022-08-30 00:39:43
我想捕获是否发生了任何更改。就像键入任何字符(删除,退格)或鼠标单击并粘贴或剪切一样。是否有可以触发所有这些事件的 jQuery 事件?<textarea>
我尝试了更改事件,但它仅在从组件中跳出后才会触发回调。
使用:我想启用一个按钮,如果 a 包含任何文本。<textarea>
我想捕获是否发生了任何更改。就像键入任何字符(删除,退格)或鼠标单击并粘贴或剪切一样。是否有可以触发所有这些事件的 jQuery 事件?<textarea>
我尝试了更改事件,但它仅在从组件中跳出后才会触发回调。
使用:我想启用一个按钮,如果 a 包含任何文本。<textarea>
实际上试试这个:
$('#textareaID').bind('input propertychange', function() {
$("#yourBtnID").hide();
if(this.value.length){
$("#yourBtnID").show();
}
});
这适用于您所做的任何更改,键入,剪切,粘贴。
bind
已弃用。用:on
$("#textarea").on('change keyup paste', function() {
// your code here
});
注意:上述代码将触发多次,每个匹配的触发器类型触发一次。要处理这个问题,请执行如下操作:
var oldVal = "";
$("#textarea").on("change keyup paste", function() {
var currentVal = $(this).val();
if(currentVal == oldVal) {
return; //check to prevent multiple simultaneous triggers
}
oldVal = currentVal;
//action to be performed on textarea changed
alert("changed!");
});