如何在键入时更新 jQuery 值
How to update jQuery value as you type?
我有一个jQuery QR码生成器,可以根据您在input
中键入的文本创建QR码的图像。QR 码和图像源会在您更改输入时实时更新。
我需要的是获取图像的src
并将其放置在自己的输入中,该输入会随着您的键入而更新。我能够使用以下方法获取src
的值:
var imageSRC = $('.qr-preview img').attr('src');
$('input#code_img_src').val(imageSRC);
这工作得很好,但是它只在页面加载时应用图像的值,而不是每次img src
更改时。有没有办法使每次src
更改时该功能都会实时更新?我可能在这里忽略了一些简单的东西,我已经研究了诸如setInterval
之类的东西,但我并不是我想要的。任何帮助将不胜感激。
我认为您应该尝试输入模糊事件。你可以这样做:
$('input#code_img_src').blur(function(){
var imageSRC = $('.qr-preview img').attr('src');
$(this).val(imageSRC);
})
并非所有浏览器都支持此功能,但这适用于 chrome:
$("#.qr-preview img").on("DOMSubtreeModified", function() {
var imageSRC = $('.qr-preview img').attr('src');
$('input#code_img_src').val(imageSRC);
});
如果我理解正确,您正在使用第三方 jQuery 插件,您将该插件与输入相关联,并为您生成 QR 码的 URL,并将其分配给另一个图像的 src
属性。我的回答假设这是正确的。
假设您有用户输入的输入,它会实时修改二维码:
<input id="qr-input" type="text">
然后,您需要做的就是将input
事件的事件侦听器附加到此输入,并在该侦听器中调用代码以使用图像的 src
属性的值更新第二个输入:
function updateSrcInput() {
var imageSRC = $('.qr-preview img').attr('src');
$('input#code_img_src').val(imageSRC);
}
var timeoutId;
$('#qr-input').on('input', function () {
if (timeoutId)
clearTimeout(timeoutId);
timeoutId = setTimeout(updateSrcInput, 0);
});
请注意,我使用超时来确保函数在插件代码之后运行,如果连续发生多个输入事件(例如,如果用户快速键入(,则只会对函数进行一次调用以更新另一个输入,这意味着您不会浪费工作。
如果需要第二个输入在文档加载时正确,只需在文档加载函数中添加对 updateSrcInput()
函数的调用即可。
相关文章:
- jQuery-更新jQuery.ajax().done()中点击的图像
- 如何更新jQuery Mobile全局弹出窗口的位置
- 更新jquery后文件上传不起作用
- 在ReactJs中更新组件时更新jQuery slick carousel
- 拖动事件后更新jQuery中jqxListBox的列表
- 如何停止将值追加到仅更新 jQuery 中的值
- 无法多次更新 jQuery 中 Ajax 调用的全局变量
- 使用 google api 地址更新 jQuery jqgrid 列
- 使用 Angular JS 动态更新 jQuery UI 属性的最佳方法
- 更新 jQuery 中的全局变量
- 如何在键入时更新 jQuery 值
- 尝试使用 mysql 和 php 更新 jquery 变量
- 更新 jQuery UI 工具提示上的数字
- 动态更新jquery中的iframe内容
- 更新jquery插件选项而不刷新页面
- 如何使用客户端数据更新jQuery.dataTables中的所有数据
- 以编程方式根据值更新jQuery滑块的位置
- ASP.NET:如何更新JQuery或Javascript中的隐藏字段
- 更新:jquery对话框模式单选按钮未选择ajax
- 在Ajax调用期间更新jQuery项