如何在JQuery中捕获TextArea文本更改事件

时间:2017-03-03 09:52:51

标签: javascript jquery

我正在使用QR码阅读器JavaScript 此JavaScript使用相机捕获图像,尝试解码QR码并将解码后的文本设置为TextArea作为输出。

这很好用。

但是当文本设置为TextArea时,我需要捕获事件,以便我可以进行进一步处理。

我尝试了以下可用解决方案的不同组合:

第1次

$('.barcodeInput').change(function(){
    debugger;
    alert("changed");
});

第二

$('body').delegate('.barcodeInput', 'keyup change', function(){
    alert("changed");
});

第三

$('.barcodeInput').bind('input propertychange', function () {
    debugger;
    alert("changed");
});

我已经定义了document.ready(function(){ // code here});

内外的所有内容

但它仍然不是在徘徊。

我的QR码解码JavaScript成功解码后将文本设置为TextArea。

我可以从JavaScript手动触发事件,但这将是补丁工作。

我希望永久解决这些问题。

谢谢是提前

1 个答案:

答案 0 :(得分:2)

您可以使用change().on()附加活动,例如:

$('.barcodeInput').change(function(){
    alert("changed");
});
//Or
$('.barcodeInput').on('change', function(){
    alert("changed");
});

您可以在更改文本时调用该事件:

textarea.val('new val').change();
//Or
textarea.val('new val').trigger('change');

注意: binddelegate已被弃用。

希望这有帮助。

$('.barcodeInput').on('change', function(){
    alert("changed");
});

$('.barcodeInput').val('new val').change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class='barcodeInput'></textarea>