该值由qr扫描仪系统更新,当值等于或包含单词“Job”时,我需要一个JS函数来触发
<h3>
<input type="text" id="qr-value" value="" readonly />
<button>Reset Scan</button>
</h3>
$(document).ready(function () {
$('#qr-value').onchange('input', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
更新:
QR.JS(其中qr代码输入文本框)
function read(a)
{
//$("#qr-value").text(a);
var TheTextBox = document.getElementById("qr-value");
TheTextBox.value = a;
}
qrcode.callback = read;
答案 0 :(得分:4)
没有onchange() - 你要找的是.on('change',handler)。我将你的内容加载到一个jsfiddle中,暂时删除了“readonly”,以便我可以测试它,并按如下方式更改事件绑定:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
小提琴:http://jsfiddle.net/BenjaminRay/xgjzppdk/
您使用代码扫描程序更新字段的事实增加了另一个复杂程度,但您可以更新该值并以编程方式触发更改事件,如下所示:
qr.js:
function read(a) {
$("#qr-value").val(a).change();
}
qrcode.callback = read;
完整示例的小提琴:http://jsfiddle.net/BenjaminRay/pfrLs0nr/
注意:“测试”按钮只是调用read('hello stephen')来模拟qrcode回调中会发生什么。该领域又恢复了原状。
答案 1 :(得分:0)
QR扫描仪(与其他扫描仪一样)以编程方式将值强制进入字段。因此,onchange事件不会触发(就像使用JavaScript修改值一样)。
对于大多数刷卡扫描仪,作为扫描值的一部分添加了额外的换行符,导致触发表单提交时出现“ENTER”。您是否有可能更改您的QR码值以在最后包含换行符?
如果没有,加载后您可能需要“轮询”该字段以查看是否已修改。