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

标签 javascript jquery

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

这运作良好。

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

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

第一

$('.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});

的内外定义了所有这些

但是还是不行。

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

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

我想永久解决这些问题。

提前致谢

最佳答案

您可以使用 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>

关于javascript - JQuery 中如何捕获 TextArea 文本更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42575634/

相关文章:

javascript - DropZone.js - 选择文件后立即在屏幕上抛出错误

javascript - 刷新时,数组中新添加的元素将从数组列表本身中删除

javascript - 巧妙排序(对可能包含或不包含数字的字符串进行排序)

javascript - 有时只有 IE 11 失去对 ajax 调用的关注 ASP.NET MVC4

javascript - 使用 JQuery 根据另一个 DIV 中文本的长度修改 DIV

javascript - 在 JQuery/Javascript 中运行 CSS

jquery - 使用 Flexslider 播放 Youtube 视频

javascript - Symfony 3 多层嵌套表单

Javascript - 查找素数列表的代码一直卡住

javascript - then 中的函数在 when 结束之前被调用