麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > HTML5 > 正文

Html5頁面上如何禁止手機虛擬鍵盤彈出

2024-09-05 07:23:19
字體:
來源:轉載
供稿:網友

工作中遇到如下需求,點擊輸入框彈出自定義彈窗,輸入框是input標簽:

但是在移動端,input會默認觸發手機的虛擬鍵盤,如何阻止手機虛擬鍵盤彈起呢?目前我試過有兩個方案,一個是給input添加readonly屬性,另一個就是在input事件處理方法前面添加一句document.activeElement.blur() 。

readonly

使用readonly方式來阻止虛擬鍵盤彈出應該是最簡單最優雅的方式了。readonly 屬性規定輸入字段為只讀。只讀字段是不能修改的。不過,用戶仍然可以使用 tab 鍵切換到該字段,還可以選中或拷貝其文本。

值得一提的是它的取值,只要聲明了readonly屬性,不管取什么值都可以,比如readonly=""、readonly="readonly"、readonly="abc"都是一樣的

優點:簡單
缺點:在iOS的Safari中無效(未做更多情況測試)

document.activeElement.blur()

這是個什么玩意兒?document.activeElement是一個Web API接口。MDN上的解釋是:它返回當前頁面中獲得焦點的元素,也就是說,如果此時用戶按下了鍵盤上某個鍵,會在該元素上觸發鍵盤事件,該屬性是只讀的。

document.activeElement屬性始終會引用DOM中當前獲得了焦點的元素。元素獲得焦點的方式有用戶輸入(通常是按Tab鍵)、在代碼中調用focus()方法和頁面加載。

它里面有很多方法,在瀏覽器控制臺查看,可以看到有很都方法:

那么document.activeElement.blur()為什么可以阻止虛擬鍵盤彈出呢?原因是:當你點擊input的時候,document.activeElement獲得了DOM中被聚焦的元素,也就是你點擊的input,而調用.blur()方法,blur我相信大家都知道吧,就是取消聚焦。獲得被聚焦的元素然后強制blur以達到沒有聚焦的樣子、、、感覺繞了。

優點:支持Android、iOS
缺點:需要添加額外的JS代碼

這句代碼加在什么地方?加入有如下HTML

<div class="calendar">    <div>        <input type="text" id="datePicker" class="date_picker" placeholder="點擊選擇入住日期"/>    </div></div>

那么這句JS加在事件處理方法中

$("#datePicker").focus(function(){    document.activeElement.blur();});

總結

就當前需求來說,用document.activeElement.blur()確實是在繞彎子,直接使用readonly是最佳方案。但是document.activeElement很強大,可以做很多事。

到此這篇關于Html5頁面上如何禁止手機虛擬鍵盤彈出的文章就介紹到這了,更多相關Html5手機鍵盤彈出內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美日韩免费观看视频 | 一区二区免费看 | 亚洲福利视 | 国产成人高潮免费观看精品 | av在线中文| 91九色网址| 澳门一级淫片免费视频 | 久久精品视频在线看99 | 深夜免费观看视频 | 成人店女老板视频在线看 | 国产精品刺激对白麻豆99 | 18pao国产成人免费视频 | 国产一区二区国产 | av电影院在线观看 | 亚洲一区二区三区视频免费 | 久久αv | 久久国产精品网 | 91婷婷射 | 91精品久久久久久久久久久 | 黄网站免费在线看 | 久久青草影院 | h视频在线观看免费 | 欧美成人午夜 | 亚洲精品久久久久久 | 毛片免费在线观看 | 久久美女免费视频 | 久草中文网 | 一级黄色毛片子 | 精品一区在线视频 | 免费一级电影 | 99精品视频久久精品视频 | 欧美日韩一区,二区,三区,久久精品 | 99r国产精品 | 亚洲电影在线观看高清免费 | 国产妞干网 | 久久国产精品久久久久久电车 | 91懂色 | 中文字幕在线免费 | 成人在线免费观看视频 | 91av亚洲| 嫩草91在线 |