0Pricing
jQuery Academy · บทเรียน

ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์

นำกฎการตรวจสอบฝั่งไคลเอ็นต์ขั้นสูงมาใช้ ให้ข้อมูลตอบกลับแก่ผู้ใช้ทันที และรับรองความถูกต้องครบถ้วนของข้อมูลก่อนส่งด้วยการตรวจสอบแบบกำหนดเองของ jQuery

ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์ เป็นบทเรียน jQuery Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน jQuery Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส jQuery Academy มีบทเรียนทั้งหมด 3 บทเรียน

เหตุใดจึงต้องตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์

การตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์จะตรวจสอบข้อมูลที่ผู้ใช้ป้อน ก่อน ส่งไปยังเซิร์ฟเวอร์ ขั้นตอนนี้สำคัญอย่างยิ่งต่อการสร้างแอปพลิเคชันเว็บที่ใช้งานง่าย

  • ประสบการณ์ผู้ใช้ที่ดีขึ้น: ผู้ใช้จะได้รับการแจ้งข้อผิดพลาดทันที จึงแก้ไขข้อผิดพลาดได้โดยไม่ต้องรอการตอบกลับจากเซิร์ฟเวอร์
  • ลดภาระของเซิร์ฟเวอร์: ตรวจพบข้อมูลที่ไม่ถูกต้องตั้งแต่เนิ่น ๆ ช่วยให้เซิร์ฟเวอร์ไม่ต้องประมวลผลคำขอที่ไม่จำเป็น
  • การโต้ตอบที่รวดเร็วขึ้น: เมื่อไม่ต้องโหลดหน้าเว็บใหม่ แบบฟอร์มจะตอบสนองได้รวดเร็วและลื่นไหลยิ่งขึ้น

นอกเหนือจากการตรวจสอบพื้นฐานของ HTML5

HTML5 มีแอตทริบิวต์สำหรับการตรวจสอบพื้นฐาน เช่น required, type="email" และ pattern แม้จะมีประโยชน์ แต่บ่อยครั้งก็ยืดหยุ่นไม่พอสำหรับกฎทางธุรกิจที่ซับซ้อนหรือข้อความแจ้งเตือนแบบกำหนดเอง

ตัวอย่างเช่น HTML5 ไม่สามารถตรวจสอบได้ง่ายว่ารหัสผ่านมีความแข็งแกร่งตามเกณฑ์ที่กำหนดหรือไม่ (เช่น มีอักขระอย่างน้อย 8 ตัว มีตัวเลขหนึ่งตัว และมีสัญลักษณ์หนึ่งตัว) หรือช่องรหัสผ่านสองช่องตรงกันหรือไม่ นี่คือจุดที่ jQuery เข้ามาช่วย!

การดักจับการส่งแบบฟอร์ม

ขั้นตอนแรกของการตรวจสอบแบบกำหนดเองคือการป้องกันการส่งแบบฟอร์มตามค่าเริ่มต้นของเบราว์เซอร์ เราจะใช้ตัวจัดการเหตุการณ์ .submit() ของ jQuery และ event.preventDefault() เพื่อการนี้

วิธีนี้ทำให้เราดำเนินตรรกะการตรวจสอบก่อน หากแบบฟอร์มถูกต้อง เราจึงค่อยส่งแบบฟอร์มด้วยตนเอง (หรือส่งผ่าน AJAX ซึ่งจะกล่าวถึงในบทเรียนอื่น)

<!-- HTML part (imagine this exists) -->
<form id="myForm">
  <input type="text" id="username" required>
  <button type="submit">Submit</button>
</form>

<script>
  $(document).ready(function() {
    $('#myForm').submit(function(event) {
      // Stop the form from submitting normally
      event.preventDefault(); 
      console.log("Form submission intercepted!");
      // Here, you'd add your validation logic
    });
  });
</script>

การจัดโครงสร้างฟังก์ชันตรวจสอบแบบกำหนดเอง

แนวทางที่ดีคือการห่อหุ้มตรรกะการตรวจสอบไว้ในฟังก์ชันที่นำกลับมาใช้ใหม่ได้ ฟังก์ชันนี้สามารถคืนค่า true หากแบบฟอร์มถูกต้อง และคืนค่า false ในกรณีอื่น

จากนั้นคุณสามารถเรียกฟังก์ชันนี้ภายในตัวจัดการเหตุการณ์ submit ของแบบฟอร์ม เพื่อพิจารณาว่าควรดำเนินการส่งต่อหรือไม่

<!-- HTML part -->
<form id="loginForm">
  <input type="text" id="email" placeholder="Email">
  <button type="submit">Login</button>
</form>

<script>
  function validateLoginForm() {
    let isValid = true;
    const email = $('#email').val();

    if (email === '' || !email.includes('@')) {
      console.log("Invalid email!");
      isValid = false;
    }
    // More validation checks here...
    return isValid;
  }

  $(document).ready(function() {
    $('#loginForm').submit(function(event) {
      event.preventDefault();
      if (validateLoginForm()) {
        console.log("Form is valid! Submitting...");
        // $(this).off('submit').submit(); // To submit programmatically
      } else {
        console.log("Form has errors. Please fix.");
      }
    });
  });
</script>

การตรวจสอบความยาวของช่องข้อความ

กฎการตรวจสอบที่ใช้กันทั่วไปคือการตรวจสอบความยาวขั้นต่ำหรือสูงสุดของข้อมูลข้อความ เราทำได้ง่าย ๆ โดยอ่านค่า .val() ของช่องรับข้อมูล แล้วตรวจสอบคุณสมบัติ .length

เราจะกำหนดให้ชื่อผู้ใช้มีความยาวอย่างน้อย 5 อักขระ

<!-- HTML part -->
<form id="userForm">
  <input type="text" id="username" placeholder="Username">
  <button type="submit">Create User</button>
</form>

<script>
  function validateUsernameLength() {
    const username = $('#username').val();
    if (username.length < 5) {
      console.log("Username must be at least 5 characters long.");
      return false;
    }
    return true;
  }

  $(document).ready(function() {
    $('#userForm').submit(function(event) {
      event.preventDefault();
      if (validateUsernameLength()) {
        console.log("Username is valid!");
      } else {
        console.log("Validation failed.");
      }
    });
  });
</script>

การแสดงคำแนะนำแก่ผู้ใช้ทันที

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

เราจะเพิ่มองค์ประกอบ <span> เพื่อแสดงข้อความแจ้งข้อผิดพลาดเมื่อชื่อผู้ใช้สั้นเกินไป

<!-- HTML part -->
<form id="userFormFeedback">
  <label for="usernameFeedback">Username:</label>
  <input type="text" id="usernameFeedback" placeholder="Min 5 chars">
  <span id="usernameError" style="color: red;"></span>
  <button type="submit">Create User</button>
</form>

<script>
  $(document).ready(function() {
    $('#userFormFeedback').submit(function(event) {
      event.preventDefault();
      const username = $('#usernameFeedback').val();
      const $errorSpan = $('#usernameError');

      if (username.length < 5) {
        $errorSpan.text("Username too short!");
        $('#usernameFeedback').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#usernameFeedback').css('border', '');
        console.log("Username is valid!");
      }
    });
  });
</script>

การตรวจสอบอีเมลด้วยนิพจน์ทั่วไป

สำหรับการตรวจสอบรูปแบบที่ซับซ้อน เช่น รูปแบบอีเมล นิพจน์ทั่วไป (regex) มีประโยชน์อย่างมาก เมธอด RegExp.test() ของ JavaScript เหมาะอย่างยิ่งสำหรับงานนี้

นิพจน์ทั่วไปสำหรับอีเมลแบบพื้นฐานสามารถตรวจสอบอักขระ สัญลักษณ์ '@' และโดเมนได้ โปรดจำไว้ว่านิพจน์ทั่วไปสำหรับอีเมลที่เข้มงวดมากเกินไปอาจซับซ้อนเกินจำเป็น ดังนั้นควรเลือกความสมดุลที่เหมาะสม

<!-- HTML part -->
<form id="emailForm">
  <label for="userEmail">Email:</label>
  <input type="text" id="userEmail" placeholder="your@example.com">
  <span id="emailError" style="color: red;"></span>
  <button type="submit">Subscribe</button>
</form>

<script>
  $(document).ready(function() {
    $('#emailForm').submit(function(event) {
      event.preventDefault();
      const email = $('#userEmail').val();
      const $errorSpan = $('#emailError');
      // Basic email regex: something@something.something
      const emailRegex = /^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/;

      if (!emailRegex.test(email)) {
        $errorSpan.text("Invalid email format.");
        $('#userEmail').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#userEmail').css('border', '');
        console.log("Email is valid!");
      }
    });
  });
</script>

การตรวจสอบช่วงตัวเลข

บางครั้งคุณจำเป็นต้องตรวจสอบว่าตัวเลขอยู่ภายในช่วงที่กำหนดหรือไม่ (เช่น อายุอยู่ระหว่าง 18 ถึง 65 หรือจำนวนอยู่ระหว่าง 1 ถึง 100) เราสามารถแปลงค่าที่ป้อนเป็นตัวเลขแล้วเปรียบเทียบอย่างง่ายได้

อย่าลืมแปลงข้อมูลที่ป้อนซึ่งเป็นข้อความให้เป็นตัวเลขด้วย parseInt() หรือ parseFloat() ก่อนเปรียบเทียบตัวเลขเสมอ

<!-- HTML part -->
<form id="ageForm">
  <label for="userAge">Your Age:</label>
  <input type="number" id="userAge" placeholder="Enter age">
  <span id="ageError" style="color: red;"></span>
  <button type="submit">Submit Age</button>
</form>

<script>
  $(document).ready(function() {
    $('#ageForm').submit(function(event) {
      event.preventDefault();
      const ageInput = $('#userAge').val();
      const age = parseInt(ageInput, 10); // Convert to integer
      const $errorSpan = $('#ageError');

      if (isNaN(age) || age < 18 || age > 65) {
        $errorSpan.text("Age must be between 18 and 65.");
        $('#userAge').css('border', '1px solid red');
      } else {
        $errorSpan.text("");
        $('#userAge').css('border', '');
        console.log("Age is valid!");
      }
    });
  });
</script>

การรวมกฎการตรวจสอบหลายข้อ

แบบฟอร์มมักมีกฎการตรวจสอบหลายข้อสำหรับช่องเดียวหรือหลายช่อง คุณสามารถเรียงลำดับการตรวจสอบเหล่านี้ไว้ภายในฟังก์ชันตรวจสอบได้

รูปแบบที่ใช้กันทั่วไปคือสมมติว่าข้อมูลถูกต้องก่อน แล้วกำหนด isValid = false หากกฎข้อใดข้อหนึ่งไม่ผ่าน วิธีนี้ช่วยให้คุณรวบรวมข้อผิดพลาดทั้งหมดก่อนแสดงให้ผู้ใช้เห็น

  • เรียกใช้ฟังก์ชันช่วยตรวจสอบแต่ละรายการ
  • จัดเก็บผลลัพธ์ไว้ในตัวบ่งชี้ค่าบูลีน
  • แสดงข้อความแจ้งข้อผิดพลาดที่เกี่ยวข้องทั้งหมด

ตรวจสอบทักษะการตรวจสอบของคุณ

พิจารณาช่องแบบฟอร์มสำหรับ 'รหัสผลิตภัณฑ์' ซึ่งต้องเป็นไปตามกฎสองข้อ:

  1. ต้องมีความยาว בדיוק 6 อักขระ
  2. ต้องประกอบด้วยตัวอักษรพิมพ์ใหญ่และตัวเลขเท่านั้น (A-Z, 0-9)

ส่วนของ jQuery ใดตรวจสอบช่อง 'productCode' และแสดงข้อความแจ้งข้อผิดพลาดได้ถูกต้อง

ทบทวน: การตรวจสอบฝั่งไคลเอ็นต์

ในบทเรียนนี้ คุณได้เรียนรู้วิธีใช้ jQuery เพื่อตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์อย่างรัดกุม เราได้กล่าวถึง:

  • ความสำคัญของการตรวจสอบฝั่งไคลเอ็นต์ที่มีต่อประสบการณ์ผู้ใช้และประสิทธิภาพ
  • การดักจับการส่งแบบฟอร์มด้วย event.preventDefault()
  • การจัดโครงสร้างฟังก์ชันตรวจสอบแบบกำหนดเอง
  • การใช้กฎตรวจสอบความยาวข้อความ รูปแบบอีเมล (regex) และช่วงตัวเลข
  • การให้คำแนะนำที่ชัดเจนและทันท่วงทีแก่ผู้ใช้

การเชี่ยวชาญเทคนิคเหล่านี้จะช่วยให้คุณสร้างแบบฟอร์มที่โต้ตอบได้ดีขึ้นและเกิดข้อผิดพลาดน้อยลง!

คำถามที่พบบ่อย

บทเรียน “ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส jQuery Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส jQuery Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์”

นำกฎการตรวจสอบฝั่งไคลเอ็นต์ขั้นสูงมาใช้ ให้ข้อมูลตอบกลับแก่ผู้ใช้ทันที และรับรองความถูกต้องครบถ้วนของข้อมูลก่อนส่งด้วยการตรวจสอบแบบกำหนดเองของ jQuery คุณปฏิบัติ jQuery Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน jQuery Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน jQuery Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน jQuery Academy นี้ได้ไหม

ได้ บทเรียน jQuery Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การจัดการช่องกรอกแบบฟอร์มแบบไดนามิก
  2. ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์
  3. การส่งแบบฟอร์มและข้อมูลตอบกลับด้วย AJAX
← กลับไปที่ jQuery Academy