iT邦幫忙

0

[菜鳥筆記]認識 event.preventDefault()

  • 分享至 

  • xImage
  •  

<接續Alpha Camp 學期2-2 Movie List 的筆記>

認識 event.preventDefault()
我要來測試在點選(提交submit) Search按鈕時侯,可不可以出現我要的東西

searchForm.addEventListener('submit', function onSearchFormSubmitted(event) {
  console.log('click')// for test
  // 頁面出現了重新整理,但是資料重整後不見就消失,無法出現。 
  
})

有出現這個問號,代表頁面被重新整理過
https://ithelp.ithome.com.tw/upload/images/20221031/2015393327Ee145xBp.png

讓我們再看一下form 的程式碼:
(小補充: HTML的form 是用來收集"user input",通常都是送去serve做處理)

<form class="row row-cols-lg-auto g-3 align-items-center mb-2" id="search-form">
        <div class="col-12">
          <label class="visually-hidden" for="search-input">
            Search Keyword
          </label>
          <input type="text" class="form-control" id="search-input" placeholder="Keyword..." />
        </div>
        <div class="col-12">
          <button type="submit" class="btn btn-primary" id="search-submit-button">
            Search
          </button>
        </div>
</form>

瀏覽器有對某網頁元素設定的預設行為,例如:點擊 a 元素的時候會連到新的網頁
而這裡點擊form 裡的 button type = "submit" 時,也會自動跳頁,並且將表單內容提交給遠端伺服器(如果有設定method 或action 屬性的話,沒有設定 action 則會重新導向當前頁面)
所以,在這裡我們希望頁面不會被重新刷新,所以我們要加入一個 event.preventDefault()在前面

searchForm.addEventListener('submit', function onSearchFormSubmitted(event) {
  event.preventDefault()
  console.log('click')// for test
  // 頁面出現了重新整理,但是資料重整後不見就消失,無法出現。 故要使用event.Preventdefault()

})

這次就能出現click了~~

https://ithelp.ithome.com.tw/upload/images/20221031/20153933vsVJwI6vX2.png

event.preventDefault()會請瀏覽器終止元件的預設行為,把控制權交給JavaScript


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言