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;