火狐下input焦點無法重復獲取問題的解決方法
更新時間:2014年06月16日 16:57:02 投稿:whsnow
input輸入框顯示的時候,需要自動獲取焦點,用focus可以輕松搞定,但在火狐下input無法獲取焦點,下面與大家分享下不錯的解決方法
今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業(yè)務邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將input隱藏掉。
因此,便產生了如下問題,input輸入框顯示的時候,需要自動獲取焦點,此時,我是用的
document.getElementById('id').focus();
恩,嘗試了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我進行用火狐測試的時候,完蛋了,第一次剛將input顯示出來的時候是好用的,但是隨后我關閉alert提醒框的時候,input無法獲取焦點了,囧!
問題棘手,又不明其所以,so,小小的查了一下網上大神們的解答方式,發(fā)現(xiàn)了如下一招,試驗了一下,果然很好用!
在alert之后,將原來的
document.getElementByIdx('id').focus();
換成
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,問題解決!
setTimeout是指在載入后延遲指定時間后執(zhí)行前面的表達式,當然在這里是延遲0ms之后執(zhí)行function。
當我只是解決了這個問題,仍然不知道為什么在火狐下這樣就能解決,如有哪位大神曉得,給下留言,讓晚生學習一下,不勝感激!
因此,便產生了如下問題,input輸入框顯示的時候,需要自動獲取焦點,此時,我是用的
復制代碼 代碼如下:
document.getElementById('id').focus();
恩,嘗試了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我進行用火狐測試的時候,完蛋了,第一次剛將input顯示出來的時候是好用的,但是隨后我關閉alert提醒框的時候,input無法獲取焦點了,囧!
問題棘手,又不明其所以,so,小小的查了一下網上大神們的解答方式,發(fā)現(xiàn)了如下一招,試驗了一下,果然很好用!
在alert之后,將原來的
復制代碼 代碼如下:
document.getElementByIdx('id').focus();
換成
復制代碼 代碼如下:
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,問題解決!
setTimeout是指在載入后延遲指定時間后執(zhí)行前面的表達式,當然在這里是延遲0ms之后執(zhí)行function。
當我只是解決了這個問題,仍然不知道為什么在火狐下這樣就能解決,如有哪位大神曉得,給下留言,讓晚生學習一下,不勝感激!
相關文章
layui 數(shù)據(jù)表格 根據(jù)值(1=業(yè)務,2=機構)顯示中文名稱示例
今天小編就為大家分享一篇layui 數(shù)據(jù)表格 根據(jù)值(1=業(yè)務,2=機構)顯示中文名稱示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
JavaScript實現(xiàn)找出字符串中第一個不重復的字符
這篇文章主要介紹了JavaScript實現(xiàn)找出字符串中第一個不重復的字符的方法,需要的朋友可以參考下2014-09-09
js實現(xiàn)文件上傳功能 后臺使用MultipartFile
這篇文章主要為大家詳細介紹了純js實現(xiàn)最簡單的文件上傳功能,后臺使用MultipartFile,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09

