火狐下input焦點無法重復獲取問題的解決方法
更新時間:2014年06月16日 16:57:02 投稿:whsnow
input輸入框顯示的時候,需要自動獲取焦點,用focus可以輕松搞定,但在火狐下input無法獲取焦點,下面與大家分享下不錯的解決方法
今天遇到了一個很棘手的問題,就是在做一些輸入框的驗證的時候,我這邊項目的業(yè)務(wù)邏輯就是當我選中某個select的某個特定option的時候,需要顯示出一個input輸入框讓用戶輸入東西,但是如果用戶啥也不做,就必須彈出警告框讓用戶輸入,等其輸入后,我這邊再將input隱藏掉。
因此,便產(chǎn)生了如下問題,input輸入框顯示的時候,需要自動獲取焦點,此時,我是用的
document.getElementById('id').focus();
恩,嘗試了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我進行用火狐測試的時候,完蛋了,第一次剛將input顯示出來的時候是好用的,但是隨后我關(guān)閉alert提醒框的時候,input無法獲取焦點了,囧!
問題棘手,又不明其所以,so,小小的查了一下網(wǎng)上大神們的解答方式,發(fā)現(xiàn)了如下一招,試驗了一下,果然很好用!
在alert之后,將原來的
document.getElementByIdx('id').focus();
換成
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,問題解決!
setTimeout是指在載入后延遲指定時間后執(zhí)行前面的表達式,當然在這里是延遲0ms之后執(zhí)行function。
當我只是解決了這個問題,仍然不知道為什么在火狐下這樣就能解決,如有哪位大神曉得,給下留言,讓晚生學習一下,不勝感激!
因此,便產(chǎn)生了如下問題,input輸入框顯示的時候,需要自動獲取焦點,此時,我是用的
復制代碼 代碼如下:
document.getElementById('id').focus();
恩,嘗試了一下,效果很好,不禁心中大喜,搞定!
但是天算不如人算,在我進行用火狐測試的時候,完蛋了,第一次剛將input顯示出來的時候是好用的,但是隨后我關(guān)閉alert提醒框的時候,input無法獲取焦點了,囧!
問題棘手,又不明其所以,so,小小的查了一下網(wǎng)上大神們的解答方式,發(fā)現(xiàn)了如下一招,試驗了一下,果然很好用!
在alert之后,將原來的
復制代碼 代碼如下:
document.getElementByIdx('id').focus();
換成
復制代碼 代碼如下:
window.setTimeout(function () { document.getElementById('id').focus();}, 0);
爽,問題解決!
setTimeout是指在載入后延遲指定時間后執(zhí)行前面的表達式,當然在這里是延遲0ms之后執(zhí)行function。
當我只是解決了這個問題,仍然不知道為什么在火狐下這樣就能解決,如有哪位大神曉得,給下留言,讓晚生學習一下,不勝感激!
相關(guān)文章
JS庫之Particles.js中文開發(fā)手冊及參數(shù)詳解
因為自己需要做產(chǎn)品,所以一個好的UI界面也是很重要的,發(fā)現(xiàn)這種散射的原子顆粒特效還不錯。今天腳本之家小編把Particles.js中文開發(fā)手冊及particles.js參數(shù)分享給大家,需要的朋友參考下吧2017-09-09javascript 使用for循環(huán)時該注意的問題-附問題總結(jié)
所謂for循環(huán)就是重復的執(zhí)行一段代碼,for循環(huán)也是希望在創(chuàng)建循環(huán)時常會用到的工具,這篇內(nèi)容主要給大家介紹javascript 使用for循環(huán)時該注意的問題-附問題總結(jié),需要的朋友可以參考下2015-08-08JavaScript實現(xiàn)計算圓周率到小數(shù)點后100位的方法示例
這篇文章主要介紹了JavaScript實現(xiàn)計算圓周率到小數(shù)點后100位的方法,簡單分析了圓周率計算的原理并結(jié)合實例形式給出了javascript計算圓周率的具體操作技巧,需要的朋友可以參考下2018-05-05JavaScript常用截取字符串的三種方式用法區(qū)別實例解析
本文給大家分享JavaScript常用截取字符串的三種方式及每種用法的區(qū)別解析,感興趣的朋友跟隨腳本之家小編一起看看吧2018-05-05