无法让 javascript 触发价值变化
Cant get javascript to fire on value change
我的某段代码有问题。
该值由 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(在文本框中输入二维码)
function read(a)
{
//$("#qr-value").text(a);
var TheTextBox = document.getElementById("qr-value");
TheTextBox.value = a;
}
qrcode.callback = read;
QR 扫描仪(与其他扫描仪一样)以编程方式将值强制输入字段。因此,onchange 事件不会触发(就像您使用 JavaScript 修改值一样)。
对于大多数刷卡扫描仪,有一个额外的换行符作为扫描值的一部分添加,导致 "ENTER" 发生触发表单提交。您是否有机会更改 QR 码值以在末尾包含换行符?
如果没有,加载后您可能需要'poll'更改字段以查看它是否已被修改。
没有 onchange() - 您正在寻找的是 .on('change', handler)。我将您的内容加载到 jsfiddle 中,暂时删除了 "readonly" 以便我可以对其进行测试,并按如下方式更改了事件绑定:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
Fiddle: http://jsfiddle.net/BenjaminRay/xgjzppdk/
使用代码扫描器更新字段的事实增加了另一层复杂性,但您可以更新值并以编程方式触发更改事件,如下所示:
qr.js:
function read(a) {
$("#qr-value").val(a).change();
}
qrcode.callback = read;
Fiddle 完整示例:http://jsfiddle.net/BenjaminRay/pfrLs0nr/
注意:"Test" 按钮只是调用 read('hello stephen') 来模拟二维码回调中会发生什么。该字段恢复为只读状态。
我的某段代码有问题。
该值由 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(在文本框中输入二维码)
function read(a)
{
//$("#qr-value").text(a);
var TheTextBox = document.getElementById("qr-value");
TheTextBox.value = a;
}
qrcode.callback = read;
QR 扫描仪(与其他扫描仪一样)以编程方式将值强制输入字段。因此,onchange 事件不会触发(就像您使用 JavaScript 修改值一样)。
对于大多数刷卡扫描仪,有一个额外的换行符作为扫描值的一部分添加,导致 "ENTER" 发生触发表单提交。您是否有机会更改 QR 码值以在末尾包含换行符?
如果没有,加载后您可能需要'poll'更改字段以查看它是否已被修改。
没有 onchange() - 您正在寻找的是 .on('change', handler)。我将您的内容加载到 jsfiddle 中,暂时删除了 "readonly" 以便我可以对其进行测试,并按如下方式更改了事件绑定:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
Fiddle: http://jsfiddle.net/BenjaminRay/xgjzppdk/
使用代码扫描器更新字段的事实增加了另一层复杂性,但您可以更新值并以编程方式触发更改事件,如下所示:
qr.js:
function read(a) {
$("#qr-value").val(a).change();
}
qrcode.callback = read;
Fiddle 完整示例:http://jsfiddle.net/BenjaminRay/pfrLs0nr/
注意:"Test" 按钮只是调用 read('hello stephen') 来模拟二维码回调中会发生什么。该字段恢复为只读状态。