如何在JQuery中捕获TextArea文本更改事件
问题描述:
我正在使用QR码阅读器JavaScript。
此JavaScript使用相机捕获图像,尝试解码QR码并将解码后的文本设置为TextArea作为输出。如何在JQuery中捕获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});
但它仍然不是很好。
我的QR码解码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');
注意:bind
和delegate
已弃用。
希望这会有所帮助。
$('.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>
我不知道你的实际问题是什么,但'change'仅火灾时,在元素失去焦点。尝试使用'输入'代替。 –
你的jQuery版本如何?你为什么不用'.on()'监听器来尝试? – Jai
当你改变Textarea的值时,你的插件是否触发'trigger('change')'事件? – Justinas