解决input number可以输入eee的问题

<input type="text" name="" oninput="this.value=this.value.replace(/[^0-9.]+/,'');">
转载自: 点击打开链接
/** * 填充表格数据 */ function populateDynamicTable(dataArray) { const tbody = document.getElementById("woInfoMaterialPrint"); tbody.innerHTML = ""; const binSet = new Set(); const grouped = {}; dataArray.forEach(function (item) { const key = item.waferLot + "-" + item.waferNo; const binCodeList = item.binCodeList .replace(/;/g, "") .split("|") .map(b => b.trim()) .filter(b => b); if (!grouped[key]) { grouped[key] = { waferType: item.waferType, productId: item.productId, waferLot: item.waferLot, waferNo: item.waferNo, waferDieQty: item.waferDieQty, binData: {}, binCodeList: binCodeList, status: item.status, waferId: item.waferId, issueData: {}, usedData: {}, returnData: {} }; } const group = grouped[key]; if (item.binCode) { const bin = item.binCode.trim(); binSet.add(bin); group.binData[bin] = parseInt(item.qty || 0); group.issueData[bin] = parseInt(item.issueQty || 0); group.usedData[bin] = parseInt(item.usedQty || 0); group.returnData[bin] = parseInt(item.qty || 0); } }); const binList = Array.from(binSet); generateDynamicTableHeader(binSet); Object.values(grouped).forEach(function (group) { const row = document.createElement("tr"); // 固定列 row.insertCell().innerHTML = group.waferType; row.insertCell().innerHTML = group.productId; row.insertCell().innerHTML = group.waferLot; row.insertCell().innerHTML = group.waferNo; row.insertCell().innerHTML = group.waferDieQty; row.insertCell().innerHTML = group.binCodeList.join("|"); row.setAttribute("data-wafer-id", group.waferId); // 行背景色 conditionalHighlight(row, group.status === null || group.status === undefined || group.status === "" || group.status === "InUse"); // 发料数量列 binList.forEach(function (bin) { let qty = 0; if (woNoStatus === 'Completed') { qty = group.issueData[bin] || 0; } else { qty = group.binData[bin] || 0; } const cell = row.insertCell(); cell.innerHTML = qty; conditionalHighlight(cell, qty === 0 && group.binCodeList.includes(bin)); conditionalHighlight(cell, group.status === "InUse"); }); // 已用数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "usedQty"; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (woNoStatus === 'Completed') { input.value = group.usedData[bin] || 0; } else { input.value = 0; } if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 退料数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "returnQty"; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (woNoStatus === 'Completed') { input.value = group.returnData[bin] || 0; } else { input.value = 0; } if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 备注列 row.insertCell().innerHTML = ""; tbody.appendChild(row); }); } 工单状态为 InUse时,可以去输入已用数量与退料数量,但是现在会默认为0,导致可以输入成01,06也可以把0去掉,输入8,7,后者还好,前者太奇怪了,需要优化成后者
最新发布
12-17
现在的代码如下: /** * 填充表格数据 */ function populateDynamicTable(dataArray) { const tbody = document.getElementById("woInfoMaterialPrint"); tbody.innerHTML = ""; const binSet = new Set(); const grouped = {}; dataArray.forEach(function (item) { const key = item.waferLot + "-" + item.waferNo; const binCodeList = item.binCodeList .replace(/;/g, "") .split("|") .map(b => b.trim()) .filter(b => b); if (!grouped[key]) { grouped[key] = { waferType: item.waferType, productId: item.productId, waferLot: item.waferLot, waferNo: item.waferNo, waferDieQty: item.waferDieQty, binData: {}, binCodeList: binCodeList, status: item.status, waferId: item.waferId, issueData: {}, usedData: {}, returnData: {} }; } const group = grouped[key]; if (item.binCode) { const bin = item.binCode.trim(); binSet.add(bin); group.binData[bin] = parseInt(item.qty || 0); group.issueData[bin] = parseInt(item.issueQty || 0); group.usedData[bin] = parseInt(item.usedQty || 0); group.returnData[bin] = parseInt(item.qty || 0); } }); const binList = Array.from(binSet); generateDynamicTableHeader(binSet); Object.values(grouped).forEach(function (group) { const row = document.createElement("tr"); // 固定列 row.insertCell().innerHTML = group.waferType; row.insertCell().innerHTML = group.productId; row.insertCell().innerHTML = group.waferLot; row.insertCell().innerHTML = group.waferNo; row.insertCell().innerHTML = group.waferDieQty; row.insertCell().innerHTML = group.binCodeList.join("|"); row.setAttribute("data-wafer-id", group.waferId); // 行背景色 conditionalHighlight(row, group.status === null || group.status === undefined || group.status === "" || group.status === "InUse"); // 发料数量列 binList.forEach(function (bin) { const qty = group.binData[bin] || 0; const cell = row.insertCell(); cell.innerHTML = qty; conditionalHighlight(cell, qty === 0 && group.binCodeList.includes(bin)); conditionalHighlight(cell, group.status === "InUse"); }); // 已用数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "usedQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 退料数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "returnQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 备注列 row.insertCell().innerHTML = ""; tbody.appendChild(row); }); } 是不是在这里去判断以下工单状态,再去选择对象赋值即可? // 发料数量列 binList.forEach(function (bin) { const qty = group.binData[bin] || 0; const cell = row.insertCell(); cell.innerHTML = qty; conditionalHighlight(cell, qty === 0 && group.binCodeList.includes(bin)); conditionalHighlight(cell, group.status === "InUse"); }); // 已用数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "usedQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 退料数量列(输入框) binList.forEach(function (bin) { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "returnQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (bin === "BINX") { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } else if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); });
12-16
/** * 填充表格数据 */ function populateDynamicTable(dataArray) { const tbody = document.getElementById("woInfoMaterialPrint"); tbody.innerHTML = ""; const binSet = new Set(); const grouped = {}; dataArray.forEach(function (item) { const key = item.waferLot + "-" + item.waferNo; const binCodeList = item.binCodeList .replace(/;/g, "") .split("|") .map(b => b.trim()) .filter(b => b); if (!grouped[key]) { grouped[key] = { waferType: item.waferType, productId: item.productId, waferLot: item.waferLot, waferNo: item.waferNo, waferDieQty: item.waferDieQty, binData: {}, binCodeList: binCodeList, status: item.status, waferId: item.waferId, }; } const group = grouped[key]; if (item.binCode) { const bin = item.binCode.trim(); binSet.add(bin); group.binData[bin] = parseInt(item.qty || 0); } }); const binList = Array.from(binSet); generateDynamicTableHeader(binSet); Object.values(grouped).forEach(function (group) { const row = document.createElement("tr"); // 固定列 row.insertCell().innerHTML = group.waferType; row.insertCell().innerHTML = group.productId; row.insertCell().innerHTML = group.waferLot; row.insertCell().innerHTML = group.waferNo; row.insertCell().innerHTML = group.waferDieQty; row.insertCell().innerHTML = group.binCodeList.join("|"); row.setAttribute("data-wafer-id", group.waferId); // 行背景色 conditionalHighlight(row, group.status === null || group.status === undefined || group.status === "" || group.status === "InUse"); // 发料数量列 binList.forEach(function (bin) { const qty = group.binData[bin] || 0; const cell = row.insertCell(); cell.innerHTML = qty; conditionalHighlight(cell, qty === 0 && group.binCodeList.includes(bin)); conditionalHighlight(cell, group.status === "InUse"); }); // 已用数量列(输入框) binList.forEach(function () { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "usedQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 退料数量列(输入框) binList.forEach(function () { const cell = row.insertCell(); const input = document.createElement("input"); input.type = "number"; input.name = "returnQty"; input.value = 0; input.style.width = "45px"; input.oninput = function () { this.value = this.value.replace(/[^0-9]/g, ''); }; if (woNoStatus !== 'InUse') { input.disabled = true; input.style.backgroundColor = "#eee"; input.style.color = "#666"; } cell.appendChild(input); conditionalHighlight(cell, group.status === "InUse"); }); // 备注列 row.insertCell().innerHTML = ""; tbody.appendChild(row); }); } 如果是BINX,不需要去填写数量,已用与退料
12-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值