接手維護客戶委外開發的網站
他的購物車結帳時可以選擇超商取貨、宅配、7-11取貨等不同的物流方式
但是他的資訊欄位都是相同的欄位,只是對應不同的物流,欄位意義不同
現在遇到的問題是
當客人結帳時,填寫手機或信箱欄位時,如果選擇了瀏覽器自動填入的項目
會導致上面記錄物流資訊欄位的值跑掉
這邊的客人應該是之前就有在網站上消費過的
我有試著設定autocomplete=off
但似乎對瀏覽器的自動填入功能無效
有其他方法嗎?可以讓瀏覽器的自動填入功能無效化
之前在專案實作上也有遇過這個問題,解決方式好像就是討論串中 ??窮嘶????? 大大分享的那樣,讓瀏覽器無法判斷現在表單欄位屬於哪一個瀏覽器曾經紀錄的欄位,自然無法自動填入。
剛好趁這個機會研究了一下,整理如下:
<input>
加上樣式設定,原理應該是透過使用你指定的形狀樣式去混淆你目前頁面上的 <input>
,進而達到讓瀏覽器無法判讀、不呈現自動填入值的效果。<input type="password" />
或 <textarea type="password" />
似乎還是不適用。In cases where you really want to disable autofill, our suggestion at this point is to utilize the autocomplete attribute to give valid, semantic meaning to your fields. If we encounter an autocomplete attribute that we don’t recognize, we won’t try and fill it.
/* 原本 */
<input type="email">
/* 改成 */
<input type="email" autocomplete="new-user-email-for-checkout">
針對單一表單元件逐一加上 autocomplete="no-autofill"
,而非加在 <form>
tag 上。
實作上舉例可以是這樣:
/* 原本 */
<input type="email">
/* 改成 */
<input type="email" autocomplete="no-autofill">
https://pochangliao.medium.com/chrome-%E8%87%AA%E5%8B%95%E5%A1%AB%E5%85%A5-autocomplete-ab4998053df5
有人試了幾種autocomplete寫法都失敗
試看看最下面的CSS?