ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์
นำกฎการตรวจสอบฝั่งไคลเอ็นต์ขั้นสูงมาใช้ ให้ข้อมูลตอบกลับแก่ผู้ใช้ทันที และรับรองความถูกต้องครบถ้วนของข้อมูลก่อนส่งด้วยการตรวจสอบแบบกำหนดเองของ 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 หากกฎข้อใดข้อหนึ่งไม่ผ่าน วิธีนี้ช่วยให้คุณรวบรวมข้อผิดพลาดทั้งหมดก่อนแสดงให้ผู้ใช้เห็น
- เรียกใช้ฟังก์ชันช่วยตรวจสอบแต่ละรายการ
- จัดเก็บผลลัพธ์ไว้ในตัวบ่งชี้ค่าบูลีน
- แสดงข้อความแจ้งข้อผิดพลาดที่เกี่ยวข้องทั้งหมด
ตรวจสอบทักษะการตรวจสอบของคุณ
พิจารณาช่องแบบฟอร์มสำหรับ 'รหัสผลิตภัณฑ์' ซึ่งต้องเป็นไปตามกฎสองข้อ:
- ต้องมีความยาว בדיוק 6 อักขระ
- ต้องประกอบด้วยตัวอักษรพิมพ์ใหญ่และตัวเลขเท่านั้น (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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจัดการช่องกรอกแบบฟอร์มแบบไดนามิก
- ตรรกะการตรวจสอบแบบฟอร์มฝั่งไคลเอ็นต์
- การส่งแบบฟอร์มและข้อมูลตอบกลับด้วย AJAX