[英]Style a required input tag on deselect if the tag is empty
我有一個可能看起來像的輸入標簽
<input required pattern="..." >
如果該標簽為空或該字段與模式不匹配,但僅當該字段已被訪問時,我想以不同的方式設置此標簽的樣式(邊框周圍為紅色)。
如果我打開包含表單的頁面,我希望所有字段的樣式都正常。
如果我點擊一個必填字段,然后
而該字段是
然后希望此字段的樣式不同
我知道:required
和:invalid
偽類標簽,但我不知道如何將其限制為僅已訪問過的字段,因為:visited
標簽僅適用於鏈接
您可以為每個輸入添加一個焦點事件偵聽器,添加一個您可以在 :invalid 時設置樣式的類。 這樣,除非存在“已成為焦點”類,否則永遠不會應用無效樣式。
const inputEmail = document.getElementById('email'); const inputNumber = document.getElementById('number'); inputEmail.addEventListener('focus', () => { inputEmail.classList.add('has-been-focused'); }); inputNumber.addEventListener('focus', () => { inputNumber.classList.add('has-been-focused'); });
input { outline: none; } .has-been-focused:invalid { border: 5px solid red; }
<input id="email" placeholder="Email" type="email" required /> <input id="number" placeholder="Number" type="number" required />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.