|
|
@@ -353,39 +353,80 @@
|
|
353
|
353
|
$(this).closest('tr').remove();
|
|
354
|
354
|
}
|
|
355
|
355
|
};
|
|
356
|
|
- window.adddata= function() {
|
|
357
|
|
- table=document.getElementById("table");
|
|
358
|
|
- let tr=table.getElementsByTagName("tr");
|
|
359
|
|
-
|
|
360
|
|
-/* let productCode=table.getElementsByName("materialCode");
|
|
361
|
|
- let productName=table.getElementsByName("materialDetile");
|
|
362
|
|
- let colour=table.getElementsByName("colour");*/
|
|
|
356
|
+ window.adddata = function() {
|
|
|
357
|
+ table = document.getElementById("table");
|
|
|
358
|
+ let tr = table.getElementsByTagName("tr");
|
|
363
|
359
|
|
|
364
|
360
|
var arrayObj = new Array();
|
|
365
|
|
- for (var i=0; i<tr.length; i++){
|
|
366
|
|
- let target=tr[i].querySelectorAll("[name]"),obj={};
|
|
367
|
|
- for (var j=0; j<target.length; j++){
|
|
368
|
|
- if(target[j].value){
|
|
369
|
|
- obj[target[j].getAttribute("name")]=target[j].value;
|
|
370
|
|
- }else{
|
|
371
|
|
- obj[target[j].getAttribute("name")]=target[j].getAttribute("value");
|
|
|
361
|
+
|
|
|
362
|
+ let hasError = false;
|
|
|
363
|
+ for (var i = 1; i < tr.length; i++) {
|
|
|
364
|
+ let target = tr[i].querySelectorAll("[name]");
|
|
|
365
|
+ let hasColourValue = false;
|
|
|
366
|
+ let colourElement = null;
|
|
|
367
|
+ debugger;
|
|
|
368
|
+ for (var j = 0; j < target.length; j++) {
|
|
|
369
|
+ if (target[j].getAttribute("name") === "colour") {
|
|
|
370
|
+ colourElement = target[j];
|
|
|
371
|
+
|
|
|
372
|
+ if (target[j].value == "") {
|
|
|
373
|
+ hasColourValue = true;
|
|
|
374
|
+ }
|
|
|
375
|
+ break;
|
|
|
376
|
+ }
|
|
|
377
|
+ }
|
|
|
378
|
+
|
|
|
379
|
+ for (var j = 0; j < target.length; j++) {
|
|
|
380
|
+ let fieldName = target[j].getAttribute("name");
|
|
|
381
|
+ let fieldValue = target[j].value || target[j].getAttribute("value") || "";
|
|
|
382
|
+ if (hasColourValue) {
|
|
|
383
|
+ if ((fieldName === "materialCode" || fieldName === "materialDetile" ||
|
|
|
384
|
+ fieldName === "position" || fieldName === "retailPrice") &&
|
|
|
385
|
+ !fieldValue.trim()) {
|
|
|
386
|
+ hasError = true;
|
|
|
387
|
+ layer.alert('第' + i + '行:' + fieldName + '为必填项!');
|
|
|
388
|
+ return;
|
|
|
389
|
+ }
|
|
|
390
|
+ }
|
|
|
391
|
+ }
|
|
|
392
|
+ }
|
|
|
393
|
+
|
|
|
394
|
+ if (hasError) {
|
|
|
395
|
+ return;
|
|
|
396
|
+ }
|
|
|
397
|
+
|
|
|
398
|
+ for (var i = 1; i < tr.length; i++) {
|
|
|
399
|
+ let target = tr[i].querySelectorAll("[name]"), obj = {};
|
|
|
400
|
+ for (var j = 0; j < target.length; j++) {
|
|
|
401
|
+ if (target[j].value) {
|
|
|
402
|
+ obj[target[j].getAttribute("name")] = target[j].value;
|
|
|
403
|
+ } else {
|
|
|
404
|
+ obj[target[j].getAttribute("name")] = target[j].getAttribute("value") || "";
|
|
372
|
405
|
}
|
|
373
|
406
|
}
|
|
374
|
407
|
arrayObj.push(obj);
|
|
375
|
408
|
}
|
|
376
|
|
- var json=JSON.stringify(arrayObj);
|
|
|
409
|
+
|
|
|
410
|
+ if (arrayObj.length === 0) {
|
|
|
411
|
+ layer.alert('请至少添加一行数据!');
|
|
|
412
|
+ return;
|
|
|
413
|
+ }
|
|
|
414
|
+
|
|
|
415
|
+ var json = JSON.stringify(arrayObj);
|
|
377
|
416
|
json = json.replace(/[+]/g, '+');
|
|
378
|
417
|
$.ajax({
|
|
379
|
418
|
url: 'insert',
|
|
380
|
419
|
type: 'post',
|
|
381
|
|
- data: "list="+json,
|
|
|
420
|
+ data: "list=" + json,
|
|
382
|
421
|
async: false,
|
|
383
|
422
|
dataType: "json",
|
|
384
|
|
- success: function (data) {
|
|
|
423
|
+ success: function(data) {
|
|
385
|
424
|
layer.msg('提交成功!', {
|
|
386
|
|
- time : 5000
|
|
|
425
|
+ time: 5000
|
|
387
|
426
|
});
|
|
388
|
|
- }, error: function (xhr, status, error) {
|
|
|
427
|
+ },
|
|
|
428
|
+ error: function(xhr, status, error) {
|
|
|
429
|
+ console.log("Response content:", xhr.responseText);
|
|
389
|
430
|
layer.alert('请求失败: ' + error);
|
|
390
|
431
|
}
|
|
391
|
432
|
});
|