我想捕捉如果发生了任何变化<textarea>。比如输入任何字符(删除,退格)或鼠标点击粘贴或剪切。是否有一个jQuery事件可以触发所有这些事件?
我尝试了更改事件,但它只在从组件tab out后触发回调。
使用:我想启用一个按钮,如果<textarea>包含任何文本。
我想捕捉如果发生了任何变化<textarea>。比如输入任何字符(删除,退格)或鼠标点击粘贴或剪切。是否有一个jQuery事件可以触发所有这些事件?
我尝试了更改事件,但它只在从组件tab out后触发回调。
使用:我想启用一个按钮,如果<textarea>包含任何文本。
当前回答
试试这个吧:
$('#textareaID').bind('input propertychange', function() {
$("#yourBtnID").hide();
if(this.value.length){
$("#yourBtnID").show();
}
});
DEMO
这适用于你所做的任何更改,输入,剪切,粘贴。
其他回答
试试这个吧:
$('#textareaID').bind('input propertychange', function() {
$("#yourBtnID").hide();
if(this.value.length){
$("#yourBtnID").show();
}
});
DEMO
这适用于你所做的任何更改,输入,剪切,粘贴。
.delegate是唯一一个工作到我与jQuery JavaScript库v2.1.1
$(document).delegate('#textareaID','change', function() {
console.log("change!");
});
2018,没有JQUERY
这个问题是关于JQuery的,这只是供参考的。
JS
let textareaID = document.getElementById('textareaID');
let yourBtnID = document.getElementById('yourBtnID');
textareaID.addEventListener('input', function() {
yourBtnID.style.display = 'none';
if (textareaID.value.length) {
yourBtnID.style.display = 'inline-block';
}
});
HTML
<textarea id="textareaID"></textarea>
<button id="yourBtnID" style="display: none;">click me</div>
试试这个
$('textarea').trigger('change');
$("textarea").bind('cut paste', function(e) { });
这是另一个(现代的)版本,但与之前提到的略有不同。经IE9测试:
$('#textareaID').on('input change keyup', function () {
if (this.value.length) {
// textarea has content
} else {
// textarea is empty
}
});
对于过时的浏览器,您还可以添加selectionchange和propertychange(如在其他答案中提到的)。但是在IE9中,选择更改对我不起作用。这就是为什么我加了keyup。