簡體   English   中英

onblur 事件僅在 Firefox 中的備用輸入字段上觸發

[英]onblur event fires only on alternate input fields in Firefox

在每個表單輸入元素之后,我需要使用相同的腳本進行驗證。
我用onblur=myFunction("name")其中, nam e是name=屬性表單域)中的每個表格元件,以便當用戶按下<tab>光標前進到下一輸入字段。

問題是 Firefox(Linux 93.0 - 64 位)僅在奇數表單輸入字段上觸發onblur事件。 偶數編號不執行事件處理程序就失去焦點。
有時,但並非總是如此,我可以通過單擊不同的表單輸入字段或旋轉出並返回到表單中來強制觸發事件。 這是非常一致的。

下面是來自真實表單的兩個示例順序字段,“ fname ”觸發事件,“ lname ”不觸發。
共有 17 個命名輸入字段。 這些字段的樣式也不反映光標退出該字段后的“未聚焦”狀態。

<label for="fname" class="shipping">First Name</label>
<input type="text" class="shipping" name="fname" id="fname" maxlength=24 size=20 placeholder="First Name" autofocus onBlur=field_check("fname")>
<label for="lname" class="shipping">Last Name</label>
<input type="text" class="shipping" name="lname" id="lname" maxlength=48 size=30 placeholder="Last Name" required onBlur=field_check("lname")> 

如何解決這個問題?

感謝那些回答的人,即使沒有人回答。 我做了很多測試,發現問題是 CSS 樣式和內聯 onBlur、onChange 等之間的干擾。當這些被刪除時,所有工作都按預期進行,盡管我無法確定某個字段何時完成。 測試時,我發現 Firefox(Linux 和 Windows)會每隔一個事件響應一次,因此備用行不會設置樣式並且不會報告數據輸入。 輸入第三個字段后,Windows 上的 Chrome 將掛起,並且在不關閉瀏覽器的情況下無法關閉彈出窗口。 舊版本的 Internet Explorer (!) 完全按預期工作,但我無法測試 Edge 或 Safari,因為我沒有在此處安裝它們。
總體而言,文檔和主流瀏覽器上的實現之間似乎存在一些脫節,但我沒有時間嘗試找到它,所以我必須找到一個“計划 B”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM