火狐下input焦點無法重復獲取問題的解決方法_javascript技巧
來源:懂視網
責編:小采
時間:2020-11-27 21:24:34
火狐下input焦點無法重復獲取問題的解決方法_javascript技巧
火狐下input焦點無法重復獲取問題的解決方法_javascript技巧:今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業務邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將
導讀火狐下input焦點無法重復獲取問題的解決方法_javascript技巧:今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業務邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將

今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業務邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將input隱藏掉。
因此,便產生了如下問題,input輸入框顯示的時候,需要自動獲取焦點,此時,我是用的
代碼如下:
document.getElementById('id').focus();
恩,嘗試了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我進行用火狐測試的時候,完蛋了,第一次剛將input顯示出來的時候是好用的,但是隨后我關閉alert提醒框的時候,input無法獲取焦點了,囧!
問題棘手,又不明其所以,so,小小的查了一下網上大神們的解答方式,發現了如下一招,試驗了一下,果然很好用!
在alert之后,將原來的
代碼如下:
document.getElementByIdx('id').focus();
換成
代碼如下:
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,問題解決!
setTimeout是指在載入后延遲指定時間后執行前面的表達式,當然在這里是延遲0ms之后執行function。
當我只是解決了這個問題,仍然不知道為什么在火狐下這樣就能解決,如有哪位大神曉得,給下留言,讓晚生學習一下,不勝感激!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
火狐下input焦點無法重復獲取問題的解決方法_javascript技巧
火狐下input焦點無法重復獲取問題的解決方法_javascript技巧:今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業務邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將