iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0

防止預設行為與表單驗證

1.preventDefault()–防止預設行為

(1)連結的預設行為
假設我們有一個超連結,當使用者點擊它時,會跳轉到指定的網址。如果我們想阻止這個預設行為並顯示一條訊息,可以這樣做:

<a href="https://example.com" id="link">點擊我</a>

<script>
    let link = document.getElementById("link");

    link.addEventListener("click", function(event) {
        event.preventDefault();  // 阻止預設的跳轉行為
        console.log("連結點擊事件,但不會跳轉");
    });
</script>

在這個範例中,點擊連結時不會跳轉到https://example.com,而是顯示訊息「連結點擊事件,但不會跳轉」。

(2)表單的預設行為
表單的預設行為是在提交時刷新頁面,這在某些情況下是不希望的,尤其當你要進行資料驗證或異步提交時。我們可以使用 preventDefault() 來阻止表單的提交行為。

<form id="myForm">
    <input type="text" id="name" placeholder="輸入名字">
    <button type="submit">提交</button>
</form>

<script>
    let form = document.getElementById("myForm");

    form.addEventListener("submit", function(event) {
        event.preventDefault();  // 阻止表單的預設提交行為
        console.log("表單已被攔截,不會提交");
    });
</script>

當點擊提交按鈕時,表單不會被提交,而是攔截了提交動作並顯示訊息。

2.表單驗證

(1)JavaScript表單驗證
驗證使用者是否輸入了名字:

<form id="myForm">
    <label for="name">名字:</label>
    <input type="text" id="name" placeholder="輸入名字">
    <span id="error" style="color: red;"></span>
    <button type="submit">提交</button>
</form>

<script>
    let form = document.getElementById("myForm");
    let nameInput = document.getElementById("name");
    let errorMsg = document.getElementById("error");

    form.addEventListener("submit", function(event) {
        if (nameInput.value.trim() === "") {
            event.preventDefault();  // 阻止表單提交
            errorMsg.textContent = "名字不能為空!";
        } else {
            errorMsg.textContent = "";  // 清除錯誤訊息
            console.log("表單提交成功!");
        }
    });
</script>

上一篇
# JavaScript入門教學Day11
下一篇
# JavaScript入門教學Day13
系列文
解鎖第一個人生成就清單:Javascript鐵人學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言