- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
本例提示条码扫描,然后将值放入“扫描输入”框。这非常适用于一个输入/一个按钮。
我的问题是我希望能够添加多个输入/按钮,然后进行扫描,然后将值放入相应的输入文本框中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Scandit Web SDK</title>
<link rel="stylesheet" href="style.css">
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'/>
<!-- Add the library, as explained on http://docs.scandit.com/stable/web/index.html -->
<script src="https://cdn.jsdelivr.net/npm/scandit-sdk@4.x"></script>
</head>
<body onclick="console.log('body clicked')">
<div id="scandit-barcode-picker"></div>
<div id="input-container">
<input id="scan-input" type="text" placeholder="Scan Receiver...">
<button id="scan" onclick="scan()">SCAN
</button>
</div>
<script>
function scan() {
startScanning();
}
function showScanner() {
scannerContainer.style.opacity = "1";
scannerContainer.style.zIndex = "1";
}
function hideScanner() {
scannerContainer.style.opacity = "0";
scannerContainer.style.zIndex = "-1";
}
function startScanning() {
showScanner();
if (picker) {
picker.resumeScanning();
}
}
function stopScanning() {
hideScanner();
if (picker) {
picker.pauseScanning();
}
}
// Configure the library and activate it with a license key
const licenseKey = "LICENSE_KEY_HERE";
// Configure the engine location, as explained on http://docs.scandit.com/stable/web/index.html
const engineLocation = "https://cdn.jsdelivr.net/npm/scandit-sdk@4.x/build"
ScanditSDK.configure(licenseKey, { engineLocation: engineLocation });
const scannerContainer = document.getElementById("scandit-barcode-picker");
scannerContainer.style.opacity = "0";
scannerContainer.style.zIndex = "-1";
const scanInput = document.getElementById("scan-input");
let picker;
// Create & start the picker
ScanditSDK.BarcodePicker.create(scannerContainer)
.then(barcodePicker => {
picker = barcodePicker;
// Create the settings object to be applied to the scanner
const scanSettings = new ScanditSDK.ScanSettings({
enabledSymbologies: ["ean8", "ean13", "upca", "upce", "code128", "code39"]
});
picker.applyScanSettings(scanSettings);
picker.on("scan", scanResult => {
stopScanning();
scanInput.value = scanResult.barcodes[0].data;
});
picker.on("scanError", error => alert(error.message));
picker.resumeScanning();
})
.catch(alert);
</script>
</body>
<style>#scan:after {display:none;}</style>
</html>`
我希望能够添加多个按钮/输入。并用相应的按钮将其放入扫描输入点。
`<input id="scan-input" type="text" placeholder="Scan Receiver...">
<button id="scan" onclick="scan()">SCAN</button>
<input id="scan-input2" type="text" placeholder="Scan Receiver #2...">
<button id="scan2" onclick="scan()">SCAN</button>`
[text1] [button1] ----- 扫描将值放入 text1[text2] [button2] ----- scan places value into text2
最佳答案
这是您的 HTML 的一个稍微改编的版本(在每个 id
中使用一个数字将帮助我们使事情变得更简单):
<input type="text" id="scan-input1" />
<button type="button" id="scan1">SCAN</button>
<br />
<input type="text" id="scan-input2" />
<button type="button" id="scan2">SCAN</button>
然后,在我们的 JavaScript 中,如果 scan1
被按下,我们可以使用以下函数向 scan-input1
发送消息,scan-input2
如果 scan-2
被按下,等等:
[...document.getElementsByTagName('button')].forEach((el) => {
el.addEventListener('click', (e) => {
const num = e.currentTarget.id.match(/\d+$/)[0];
document.getElementById(`scan-input${num}`).value = "Scan Complete";
});
});
上面的代码:
为每个按钮添加一个点击事件监听器,
从点击按钮的id中获取数字,
使用该数字来定位正确的输入。
上述解决方案的优势在于它可以自动缩放。只要您对每个 id
(scan3
、scan-input3
等)遵循相同的命名约定,每个新按钮和输入将具有相同的行为。
下面,我已将我的建议插入到您的代码中 - 仅更改最低限度:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Scandit Web SDK</title>
<link rel="stylesheet" href="style.css">
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0' />
<!-- Add the library, as explained on http://docs.scandit.com/stable/web/index.html -->
<script src="https://cdn.jsdelivr.net/npm/scandit-sdk@4.x"></script>
</head>
<body onclick="console.log('body clicked')">
<div id="scandit-barcode-picker"></div>
<div id="input-container">
<input type="text" id="scan-input1" />
<button type="button" id="scan1" placeholder="Scan Receiver...">SCAN</button>
<br />
<input type="text" id="scan-input2" />
<button type="button" id="scan2" placeholder="Scan Receiver...">SCAN</button>
<br />
<input type="text" id="scan-input3" />
<button type="button" id="scan3" placeholder="Scan Receiver...">SCAN</button>
</button>
</div>
<script>
let scanInput;
[...document.getElementsByTagName('button')].forEach((el) => {
el.addEventListener('click', (e) => {
const num = e.currentTarget.id.match(/\d+$/)[0];
scanInput = document.getElementById(`scan-input${num}`);
scan();
});
});
function scan() {
startScanning();
}
function showScanner() {
scannerContainer.style.opacity = "1";
scannerContainer.style.zIndex = "1";
}
function hideScanner() {
scannerContainer.style.opacity = "0";
scannerContainer.style.zIndex = "-1";
}
function startScanning() {
showScanner();
if (picker) {
picker.resumeScanning();
}
}
function stopScanning() {
hideScanner();
if (picker) {
picker.pauseScanning();
}
}
// Configure the library and activate it with a license key
const licenseKey = "LICENSE_KEY_HERE";
// Configure the engine location, as explained on http://docs.scandit.com/stable/web/index.html
const engineLocation = "https://cdn.jsdelivr.net/npm/scandit-sdk@4.x/build"
ScanditSDK.configure(licenseKey, {
engineLocation: engineLocation
});
const scannerContainer = document.getElementById("scandit-barcode-picker");
scannerContainer.style.opacity = "0";
scannerContainer.style.zIndex = "-1";
let picker;
// Create & start the picker
ScanditSDK.BarcodePicker.create(scannerContainer)
.then(barcodePicker => {
picker = barcodePicker;
// Create the settings object to be applied to the scanner
const scanSettings = new ScanditSDK.ScanSettings({
enabledSymbologies: ["ean8", "ean13", "upca", "upce", "code128", "code39"]
});
picker.applyScanSettings(scanSettings);
picker.on("scan", scanResult => {
stopScanning();
scanInput.value = scanResult.barcodes[0].data;
});
picker.on("scanError", error => alert(error.message));
picker.resumeScanning();
})
.catch(alert);
</script>
</body>
<style>
#scan:after {
display: none;
}
</style>
</html>`
关于javascript - 单击按钮扫描到 elementbyid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57365351/
我的输入标签是这样的: 这是我的 JavaScript 函数 function get(){ alert(document.getElementById("kkk").value); } 虽
本例提示条码扫描,然后将值放入“扫描输入”框。这非常适用于一个输入/一个按钮。 我的问题是我希望能够添加多个输入/按钮,然后进行扫描,然后将值放入相应的输入文本框中。 Scan
我正在尝试从一个网页 URL 获取一个 div 到另一个网页,并使用 getElementById 以纯文本显示,而不使用 AJAX 或 jQuery,因为我要实现它在 FitNesse 中。有没有办
我试图通过 JS 更改对象的类,以便我可以使用 onclick="document.getElementByID ..."更改 CSS 样式 GET STARTED GET IN TOUCH
有没有办法在 DIV 中获取元素 ID。 问题出在我有 25 个 DIV 的网页上,每个 DIV 都包含一个具有相同 ID 的隐藏 DIV。 最佳答案 他们不允许有相同的 ID(参见 http://b
我搜索了很多,但找不到我的问题的答案。如何让 getElementById 在 Vimperator 中工作?每当我尝试时,它都会告诉我: "document.getElementById(...)
在下面的代码中,当按下开始按钮时,将生成一个随机数。点击正确的数字(JS onClick),分数会增加1。点击错误的数字,分数会减少1。我在这段代码中将正确的数字硬编码为5。 当我点击结束按钮时,随机
在 javascript 文件 inClockingModels.js 中,我有这个函数: Modal.prototype.SetText = function(text, tipkovnicaMod
我有下面给出的 HTML 页面的一部分,我想使用 DOM 解析器提取其 id 为 hiddenDivHL 的 div 标签的内容: HTML 页面的一部分: http://74.127.61.106/
我将 nativescript 与 vue.js 一起使用,我正在尝试执行类似 DOM 操作的操作。这是我的模板中的示例代码: 我想通过他的id获取标签元素Fo
谁能帮我理解为什么会出现这个错误 document.getElementById("actContentToGet").contentWindow.document.body.getElementBy
我有一个带有影子 DOM 的自定义元素,它监听属性 target 的变化。 target 应该是我的组件应该附加到的元素的 ID。 我已经尝试使用 querySelector 和 getElement
我有文件 - index.html,其中嵌入了 script.js。 Script.js - 正在渲染 html 标签。 我想在 index.html 中插入这段代码,它显示 HREF 值,由 scr
例如: "> " > ...... 我不知道如何将 id 放入 javascript。 最佳答案 HTML 是文本。 JavaScript 是文本。所以 - 同样的方式。
我想在我的页面上添加一个可以滑入 View 的叠加层。为此,我在打开和关闭叠加层期间设置了 div 的 style.width。问题是 div 由 *ngIf 控制,并且当我的 .ts 代码设置 *n
我知道这是一个很常见的问题。我试图通过 javascript 获得一个“输入键”事件来调用页面上某个按钮的点击。但是,我终生无法通过我的 asp.net 页面中的 ID 或名称获取单个元素。 据我了解
我目前正在尝试访问类中的控件。 HTML代码:       Java
我是一名优秀的程序员,十分优秀!