มีเหตุผลหลายประการที่จะปิดการใช้งานปุ่มในเว็บแอปพลิเคชัน ไม่ว่าจะเป็นการป้องกันไม่ให้ผู้ใช้เพิ่มสินค้าที่จำหน่ายหมดแล้วลงในรถเข็นช็อปปิ้ง หรือไม่อนุญาตให้ผู้ใช้คลิกปุ่มหลังจากดำเนินการแล้ว jQuery ไม่มีวิธีการปิดการใช้งานปุ่มโดยตรง
เราใช้ prop() . แทน เมธอด ซึ่งเป็นส่วนเสริมที่ใหม่กว่าในไลบรารี — ปรากฏใน jQuery 1.6 ถูกนำมาใช้เป็นวิธีการแก้ปัญหาในการดึงค่าคุณสมบัติขององค์ประกอบที่เลือก ก่อนหน้านี้ใช้ attr() วิธีการซึ่งดึงค่าแอตทริบิวต์
การมีวิธีการที่เกี่ยวข้องกับการรับค่าแอททริบิวต์ในขณะที่การดึงค่าคุณสมบัติยังทำให้ได้ผลลัพธ์ที่คาดเดาไม่ได้ในบางครั้ง ตั้งแต่ jQuery 1.6 prop() วิธีการถูกนำมาใช้เพื่อแก้ปัญหาความไม่เท่าเทียมกันนี้ เพื่อจุดประสงค์ของเรา เราจะใช้ prop() เพื่อปิดการใช้งานปุ่มของเราเพราะ "ปิดการใช้งาน" เป็นค่าคุณสมบัติขององค์ประกอบปุ่ม HTML
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ att() เทียบกับ prop() , อ่านประวัติย่อและบทช่วยสอน
prop() ไวยากรณ์ jQuery
ตอนนี้เราได้พูดถึงสาเหตุและวิธีใช้ prop() . แล้ว เราสามารถดูไวยากรณ์ได้ จำไว้ว่า prop() เป็นเพียงวิธี jQuery อื่นและวิธีการเหล่านี้ถูกเรียกในองค์ประกอบที่เลือก - ในกรณีของเราคือปุ่ม มาดูกันว่าเราจะปิดการใช้งานปุ่มที่มีรหัส “btn” ได้อย่างไร
<button id='btn' type='submit'> Button is Disabled </button>
HTML นี้แสดงผลปุ่ม
ปุ่มของเรากำลังแสดงผล! ตอนนี้ เราสามารถตั้งค่าคุณสมบัติของ “disabled” เป็น true โดยใช้ jQuery prop() .
$('#btn').prop('disabled', true)
อย่างที่เราเห็น prop() ยอมรับค่าเป็นสตริงและเราตั้งค่าบูลีนในอาร์กิวเมนต์ที่สอง ค่าบูลีนเป็นจริงหรือเท็จ นี่คือคำแนะนำที่เจาะลึกถึงวิธีการใช้บูลีน
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
หลังจากตั้งค่าคุณสมบัติ "ปิดการใช้งาน" เป็นจริง เราจะสร้างปุ่มที่ไม่สามารถคลิกได้ ตอนนี้เราเข้าใจไวยากรณ์แล้ว มาดูเหตุผลและเวลาที่เราต้องการใช้สิ่งนี้กัน ในส่วนถัดไป เราจะมาดูไซต์อีคอมเมิร์ซที่มีผลิตภัณฑ์ที่มีแอตทริบิวต์ "ขายหมดแล้ว"
การใช้ jQuery prop() เพื่อปิดการใช้งานปุ่ม
ในตัวอย่างนี้ เรามีแอปซื้อของที่จะปิดการใช้งานปุ่ม "เพิ่มลงในรถเข็น" หากสินค้าหมด สำหรับตัวอย่างนี้ เราจะแสดงปุ่ม HTML อย่างง่าย และ
<button class='add' type='submit'> Add to Cart </button> <div> </div>
มาดูกันว่าปุ่มของเราแสดงผลอย่างไร
ตอนนี้ มาสร้างผลิตภัณฑ์และฟังก์ชันเรียกกลับ ซึ่งเป็นฟังก์ชันที่ส่งต่อไปยังฟังก์ชันอื่นที่จะเรียกในภายหลัง เพื่อแสดงรถเข็นของเราใน
const product = {
name: 'Jacket',
price: 50.00,
soldOut: false
}
$(document).ready(function() {
$('button.add').click(function(event) {
event.preventDefault()
alert(JSON.stringify(product.soldOut))
if (product.soldOut) {
$('.add').prop('disabled', true)
} else {
$('div').append(product.name)
}
})
}) เราได้สร้างตัวแปรที่เรียกว่าผลิตภัณฑ์ที่มีวัตถุ ออบเจ็กต์มีคุณสมบัติของชื่อ ราคา และขายหมด หากทรัพย์สินที่ soldOut เป็นเท็จ เราควรเห็นแจ็คเก็ตของเราแสดงใน
เนื่องจากคุณสมบัติ soldOut ของเราถูกตั้งค่าเป็นเท็จ เราจึงแสดงผลิตภัณฑ์ของเราใน
const product = {
name: 'Jacket',
price: 50.00,
soldOut: true
}
เราคาดว่าปุ่ม Add to Cart จะถูกปิดใช้งานในขณะนี้
นั่นคือสิ่งที่เราต้องการ การใช้คำสั่งแบบมีเงื่อนไขในฟังก์ชันเรียกกลับ เราสามารถปิดใช้งานปุ่ม "หยิบใส่ตะกร้า" ได้ ขณะนี้ผู้ใช้ไม่สามารถเพิ่มสินค้าที่สินค้าหมดลงในรถเข็นได้ เราหลีกเลี่ยงความปวดหัวครั้งใหญ่ในแอปอีคอมเมิร์ซของเรา!
บทสรุป
ในการเรียนรู้วิธีปิดการใช้งานปุ่ม HTML ด้วย jQuery เราพบว่า jQuery ไม่มีวิธีการที่ชัดเจนในการทำเช่นนั้น เพื่อแก้ปัญหานี้ เราใช้ prop() วิธีการตั้งค่าคุณสมบัติปุ่ม "ปิดใช้งาน" เป็นจริง จากนั้นเราก็เห็นตัวอย่างการปิดใช้งานปุ่มมีประโยชน์อย่างไร
การแนะนำประสบการณ์ผู้ใช้ในการพัฒนาเว็บเป็นสิ่งสำคัญ ในคู่มือนี้ เราใช้ปุ่มปิดการใช้งานเพื่อแนะนำประสบการณ์ผู้ใช้ สำรวจว่าการปิดใช้งานปุ่มสามารถช่วยชี้นำประสบการณ์ผู้ใช้ของคุณในโครงการต่อไปได้อย่างไร