Fire oninput event with jQuery

前端 未结 7 911
太阳男子
太阳男子 2020-12-02 22:47

I have an oninput event on a textarea to check the height and resize it. Now I need to edit the value sometimes. I do this just by editting the val() in jQuery, but that doe

7条回答
  •  有刺的猬
    2020-12-02 23:02

    You can bind to input and change:

    input will be triggered at user input

    change will be triggered at change() and to val(" ") assignments, but after some changes

    $("#textarea").bind("input change", function() {
        alert("change happend");
    });
    ...
    

    after you binded to change you can call it manualy on each val(" ") assignment:

    $("#textarea").val("text").change();
    

    or you can overwrite jQuery val(" ") method to trigger change on each user val(" ") call:

    (function ($) { var fnVal = $.fn.val;
        $.fn.val = function(value) {
            if (typeof value == 'undefined') {
                return fnVal.call(this);
            }
            var result = fnVal.call(this, value);
            $.fn.change.call(this); // calls change()
            return result;
        };
    })(jQuery);
    

提交回复
热议问题