提问者:小点点

如何绑定到jQuery中textarea的更改事件?


我想捕获是否发生了任何变化

我尝试了更改事件,但它仅在从组件中制表后触发回调。

使用:如果


共3个答案

匿名用户

试试这个实际上:

$('#textareaID').bind('input propertychange', function() {

      $("#yourBtnID").hide();

      if(this.value.length){
        $("#yourBtnID").show();
      }
});

这适用于您所做的任何更改,包括键入、剪切和粘贴。

匿名用户

不建议使用绑定。使用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!");
});

JSFIDLE演示

匿名用户

使用输入事件。

var button = $("#buttonId");
$("#textareaID").on('input',function(e){
  if(e.target.value === ''){
    // Textarea has no value
    button.hide();
  } else {
    // Textarea has a value
    button.show();
  }
});