无法使javascript在值更改时启动
我对某段代码有问题 该值由qr扫描系统更新,当该值等于或包含单词“Job”时,我需要一个JS函数来启动无法使javascript在值更改时启动,javascript,jquery,model-view-controller,Javascript,Jquery,Model View Controller,我对某段代码有问题 该值由qr扫描系统更新,当该值等于或包含单词“Job”时,我需要一个JS函数来启动 <h3> <input type="text" id="qr-value" value="" readonly /> <button>Reset Scan</button> </h3> $(document).ready(function () { $('#qr-value').onchange('in
<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扫描器(与其他扫描器一样)通过编程将值强制输入字段。因此,onchange事件不会触发(就像使用JavaScript修改值一样)
对于大多数刷卡扫描仪,作为扫描值的一部分,会添加一个额外的换行符,导致在提交表单时出现“回车”。您是否有可能更改二维码值,使其在末尾包含换行符
如果没有,加载后,您可能需要“轮询”字段以进行更改,查看其是否已被修改。QR扫描仪(与其他扫描仪一样)通过编程将值强制输入字段。因此,onchange事件不会触发(就像使用JavaScript修改值一样)
对于大多数刷卡扫描仪,作为扫描值的一部分,会添加一个额外的换行符,导致在提交表单时出现“回车”。您是否有可能更改二维码值,使其在末尾包含换行符
如果没有,加载后,您可能需要“轮询”字段以进行更改,以查看它是否已被修改。没有onchange()-您要查找的是.on('change',handler)。我将您的内容加载到JSFIDLE中,临时删除了“readonly”,以便对其进行测试,并更改了事件绑定,如下所示:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
小提琴:
使用代码扫描程序更新字段这一事实增加了另一个复杂程度,但您可以按如下方式更新值并以编程方式触发更改事件:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
qr.js:
function read(a) {
$("#qr-value").val(a).change();
}
qrcode.callback = read;
举个完整的例子:
注意:“Test”按钮只是调用read('hello stephen')来模拟qrcode回调中会发生什么。该字段已恢复为只读。没有onchange()-您要查找的是.on('change',handler)。我将您的内容加载到JSFIDLE中,临时删除了“readonly”,以便对其进行测试,并更改了事件绑定,如下所示:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
小提琴:
使用代码扫描程序更新字段这一事实增加了另一个复杂程度,但您可以按如下方式更新值并以编程方式触发更改事件:
$(document).ready(function () {
$('#qr-value').on('change', function () {
if ($('#qr-value').val() == 'hello stephen') {
alert('Changed!')
}
});
});
qr.js:
function read(a) {
$("#qr-value").val(a).change();
}
qrcode.callback = read;
举个完整的例子:
注意:“Test”按钮只是调用read('hello stephen')来模拟qrcode回调中会发生什么。该字段已恢复为只读。我有一个qr.js文件,该文件将信息放入文本框(请参阅更新)您能否共享qr.js中编辑文本框的行?var TheTextBox=document.getElementById(“qr值”);TheTextBox.value=a;假设jQuery是在qr.js之前加载的,您应该能够将该行更改为:$('#qr value').val(a).change();谢谢@Benjamin Ray:)我想我知道我现在能做什么了:)我不知道如果没有用户交互,更改()是不可能的,现在我知道了:)谢谢:)回答和解释很好:)我有一个qr.js文件,它将信息放入文本框(见更新)您可以在qr.js中共享编辑文本框的行吗?var TheTextBox=document.getElementById(“qr值”);TheTextBox.value=a;假设jQuery是在qr.js之前加载的,您应该能够将该行更改为:$('#qr value').val(a).change();谢谢@Benjamin Ray:)我想我知道我现在能做什么:)我不知道如果没有用户交互,更改()是不可能的,现在我知道了:)谢谢:)很好的回答和解释:)