diff --git a/supply.html b/supply.html index 196fbce..56b439c 100644 --- a/supply.html +++ b/supply.html @@ -6066,12 +6066,10 @@ const quantityValue = pair.querySelector('.quantity-input').value.trim(); const costpriceValue = pair.querySelector('.costprice-input').value.trim(); - if (specValue) { - specifications.push(specValue); - // 件数可以为0,所以只检查是否有值(包括"0") - quantities.push(quantityValue); - costprices.push(costpriceValue); - } + // 无论规格是否为空,都将所有对添加到数组中,以便后续验证 + specifications.push(specValue); + quantities.push(quantityValue); + costprices.push(costpriceValue); }); @@ -6128,16 +6126,17 @@ alert('请输入采购价'); return; } - // 验证规格、件数和采购价 - 确保每个对都是完整的 + // 验证规格、件数和采购价 - 确保每个填写了规格的对都有对应的件数和采购价 let allPairsValid = true; for (let i = 0; i < specifications.length; i++) { - if (specifications[i].trim() === '' || quantities[i].trim() === '' || costprices[i].trim() === '') { + // 如果规格不为空,则必须同时有件数和采购价 + if (specifications[i].trim() !== '' && (quantities[i].trim() === '' || costprices[i].trim() === '')) { allPairsValid = false; break; } } if (!allPairsValid) { - alert('每个规格-件数-采购价对都必须完整,缺少任何一个都无法创建'); + alert('每个填写了规格的对都必须有对应的件数和采购价'); return; } if (!formData.supplyStatus) { @@ -7985,18 +7984,19 @@ alert('请输入采购价'); return false; } - // 验证规格、件数和采购价 - 确保每个对都是完整的 - let allPairsValid = true; - for (let i = 0; i < specifications.length; i++) { - if (specifications[i].trim() === '' || quantities[i].trim() === '' || costprices[i].trim() === '') { - allPairsValid = false; - break; + // 验证规格、件数和采购价 - 确保每个填写了规格的对都有对应的件数和采购价 + let allPairsValid = true; + for (let i = 0; i < specifications.length; i++) { + // 如果规格不为空,则必须同时有件数和采购价 + if (specifications[i].trim() !== '' && (quantities[i].trim() === '' || costprices[i].trim() === '')) { + allPairsValid = false; + break; + } + } + if (!allPairsValid) { + alert('每个填写了规格的对都必须有对应的件数和采购价'); + return false; } - } - if (!allPairsValid) { - alert('每个规格-件数-采购价对都必须完整,缺少任何一个都无法保存'); - return false; - } if (!formData.supplyStatus) { alert('请选择货源状态(预售/现货)'); return false;