JavaScript 中的 preventDefault() 與 return false 的區別?
在這篇文章中,我們將瞭解如何使用 JavaScript 的 preventDefault 和 return false 函式來覆蓋事件的預設行為。
阻止事件預設行為的兩種最流行的 JavaScript 方法是 preventDefault() 和 return false。
讓我們瞭解一下這兩個概念:
preventDefault() |
Return false |
---|---|
preventDefault() 方法是 JavaScript 中事件物件上可用的一個函式。 |
Return false 不是函式,而是一個 JavaScript 語句。 |
它有助於停止某個事件的預設行為。 |
它不僅可以阻止預設行為,還可以阻止事件進一步傳播到父元素,並停止函式的進一步執行。 |
它僅在事件物件上可用。 |
它可以在 JavaScript 程式碼的任何地方使用。 |
示例 1
在這種情況下,我們將向表單的提交事件新增一個事件監聽器。為了阻止表單提交併在控制檯中記錄一條訊息,我們將在事件監聽器方法中的事件物件上執行 preventDefault()。這將防止頁面重新整理(這是典型的瀏覽器行為),並允許我們處理表單提交事件。
檔名:index.html
<!DOCTYPE html> <html> <head> <title>PreventDefault( ) vs Return false in JavaScript?</title> </head> <body> <form id="myForm"> <input type="text" name="username" /> <button type="submit">Submit</button> </form> <script> const form = document.getElementById('myForm'); form.addEventListener('submit', function(event) { event.preventDefault(); console.log('Form submission prevented.'); }); </script> </body> </html>
輸出
輸出將如下所示:
示例 2
在這個例子中,我們將使用 onclick 屬性將點選事件監聽器連線到提交按鈕,然後立即返回 false。這將阻止表單提交,並阻止事件傳播到其父元素。
檔名:index.html
<!DOCTYPE html> <html> <head> <title>PreventDefault( ) vs Return false in JavaScript?</title> </head> <body> <form id="myForm"> <input type="text" name="username" /> <button type="submit" onclick="return false;">Submit</button> </form> </body> </html>
輸出
輸出將如下所示:
結論
總之,JavaScript 中的 preventDefault() 和 return false 在事件處理和修改預設行為方面非常相似,但存在細微差別:一個允許事件傳播,另一個阻止事件傳播。preventDefault() 方法用於阻止事件的預設行為,而 return false 不僅阻止預設行為,還阻止事件傳播到父元素。我們學習了 JavaScript 中 preventDefault 與 return false 的概念,並透過一些示例進行了說明。