preventDefault() এবং return false-এর পার্থক্য
preventDefault(): ব্রাউজারের ডিফল্ট আচরণ বন্ধ করে (যেমন লিংক ক্লিক করলে পেজ রিডাইরেক্ট না হয়)। কিন্তু ইভেন্ট বাবলিং বন্ধ করে না।
return false: ব্রাউজারের ডিফল্ট আচরণ বন্ধ করে এবং ইভেন্ট প্রোপেগেশন (বাবলিং) বন্ধ করে। কলব্যাক এক্সিকিউশনও অবিলম্বে রुकে।
উদাহরণ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
.result { font-weight: 500; font-size: 18px; color: blueviolet; }
</style>
</head>
<body>
<h1>preventDefault() Vs return false</h1>
<a href="https://www.google.com" class="link">Google</a>
<input type="checkbox" class="check" onclick="return checkedOrNot(false)"/><br />
<div class="result"></div>
<br />
<div class="result"></div>
<h3>উপরোক্ত লিংক বা চেকবক্সে ক্লিক করুন preventDefault() বা return false কাজ করে দেখতে</h3>
<script>
let resEle = document.querySelectorAll(".result");
let linkEle = document.querySelector(".link");
let checkEle = document.querySelector(".check");
function printText(event) {
resEle[0].innerHTML = "preventDefault() লিংকের ডিফল্ট আচরণ বন্ধ করলো";
event.preventDefault();
}
function checkedOrNot(val) {
if (val === true) {
checkEle.checked = true;
} else {
resEle[1].innerHTML = "return false চেকবক্স চেক হওয়া বন্ধ করলো";
return false;
}
}
linkEle.addEventListener("click", printText);
</script>
</body>
</html>
আউটপুট
Google লিংকে ক্লিক করলে পেজ রিডাইরেক্ট হবে না (preventDefault)। চেকবক্সে ক্লিক করলে চেক হবে না (return false)।