สอบถามการตรวจสอบ form ที่มีการ clone แถว

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามการตรวจสอบ form ที่มีการ clone แถว

สอบถามการตรวจสอบ form ที่มีการ clone แถว


สื่งที่ต้องการคือ เมื่อ user กดปุ่มบันทึกข้อมูล ให้ตรวจสอบก่อนว่าถ้า user เลือกโครงการและปีที่ได้รับเหมือนกัน (ถ้าโครงการเดียวกันแต่คนละปีได้) ให้ alert เตือน user ให้เลือกใหม่ (คิดว่าน่าจะใช้ jquery each function แต่เขียนไม่ถูก) ขอคำแนะนำหรือตัวอย่างหน่อยครับ ขอบคุณครับ

ปล. เพิ่มแถวไปเรื่อย ๆ ใช้ jquery clone


Hardalways 101.109.133.xxx 12-04-2022 16:30:32

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

กำหนด css class ให้กับ โครงการ และ ปี สำหรับอ้างอิง
เมื่อกดปุ่ม เพื่อส่ง ทำการ นำค่าของ โครงการและปีมาต่อกัน เป็นข้อความเดียว แล้วเก็บไว้ใน อาเรย์
ตรวจสอบว่ามีการเลือกค่าที่ซำกันหรือไม่ ถ้าอาเรย์ที่ตรวจสอบค่าซ้ำไม่มี แสดงว่าไม่ซ้ำกัน แต่ถ้ามีแสดงว่าซ้ำกัน
ก็ให้ขึ้นแจ้งเตือน

สมมติ กำหนด css class ให้กับ โครงการเป็น chkVal1 และ ปี เป็น  chkVal2 ก็จะได้เป็นดังนี้

 

  $("form").on("submit",function(){
    let chkArr = [];
    $(".chkVal1").each(function(i,k){
      chkArr.push($(".chkVal1").eq(i).val()+$(".chkVal2").eq(i).val());
    });
    let duplicates = []
    const tempArray = [...chkArr].sort();

    for (let i = 0; i < tempArray.length; i++) {
      if (tempArray[i + 1] === tempArray[i]) {
        duplicates.push(tempArray[i])
      }
    }
    if(duplicates.length>0){
      alert("ข้อมูลซ้ำ เลือกใหม่");
      return false;
    }
  });


ninenik 223.24.60.xxx 13-04-2022
 ความคิดเห็นที่ 2


ลองทำตามโค้ดที่แนะนำแล้วครับ แต่พอกดปุ่มบันทึกมันฟ้องว่าซ้ำ ทั้งที่เงื่อนไขไม่ซ้ำกันเลยครับ ตามรูปด้านบน

(ลองทำหลาย ๆ เงื่อนไข ไม่ว่าจะเลือกเงื่อนไขซ้ำหรือไม่ซ้ำ จะฟ้องว่าซ้ำหมดเลยครับ)

ลอง alert ค่าออกมาดู ได้ดังนี้ครับ

alert(chkArr);


alert(tempArray);


alert(duplicates.length);


รบกวนขอคำแนะนำอีกทีครับ ขอบคุณครับ


hardalways 101.109.133.xxx 13-04-2022 10:15
 ความคิดเห็นที่ 3
ผมเดาเอานะครับ น่าจะเป็นเพราะคอมม่าแปลก ๆ ใน array หรือป่าวครับ


hardalways 101.109.133.xxx 13-04-2022 10:19
 ความคิดเห็นที่ 4
ทำได้แล้วนะครับ ขอบคุณสำหรับการช่วยเหลือมาก ๆ ครับ

ปล. แก้โดยเพิ่มการเช็คค่าว่างเข้าไปใน each function


hardalways 101.109.133.xxx 13-04-2022 11:17
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ