成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為了關閉全局 Input 的自動拼寫校驗!走了好多彎路

開發 前端
上個星期,接到了一個需求,要求去除掉項目中的輸入框的自動拼寫檢查功能,由于本項目是使用了antd-design這個組件庫,那我們來看看整個項目都有哪些組件包含了輸入框標簽呢?

自動校驗

注:以下輸入框包含input、textarea。

事情是這樣的,上個星期,接到了一個需求,要求去除掉項目中的輸入框的自動拼寫檢查功能,也就是下圖出現的紅線,這個檢查是瀏覽器自帶的。

解決方法

其實是有解決方法的,而且也不難,很簡單,只需要在輸入框標簽上加上一個屬性spellcheck=false即可,也就是:

解決思路

但是問題來了,我需要給全局的輸入框標簽都加上才行,由于本項目是使用了antd-design這個組件庫,那我們來看看整個項目都有哪些組件包含了輸入框標簽呢?

  • Input:包含input
  • Select:包含input
  • InputNumber:包含input
  • Textarea:包含textarea
  • body:直接在 body 上加 spellcheck="true"

多種解決方法

1.ConfigProvider

ant-design官方提供了一個組件,可以用來為全局的組件進行統一配置,這個組件可以傳入一個input的參數,即可配置全局的Input標簽

也就是:

由于這個配置只針對全局的Input,所以結果都有哪些組件成功去掉了拼寫校驗功能呢:

  • Input:?
  • Select:?
  • InputNumber:?
  • Textarea:?

2.修改defaultProps

大概的思路就是,修改ant-design的源碼中的input這一部分,給Input、Textarea這些組件加上一個defaultProps,這個defaultProps長這樣:

所以具體實現為以下代碼:

結果就是,全局的Input、Textarea都去除了拼接檢查了,但是Select、InputNumber卻沒有去除,因為他們是依賴了RCSelect、RCInputNumber這兩個另外的組件,所以想改這兩個,就得去改他們兩依賴的組件,所以結果就是:

  • Input:?
  • Select:?
  • InputNumber:?
  • Textarea:?

3.攔截React.createElement

我們都知道在React中,只要涉及到JSX語法,最終在解析時都會通過React.createElement方法來創建標簽:

所以思路就是在最終調用React.createElement時,判斷如果是input、textarea這兩個類型的話,就給標簽加上spellCheck: false這個屬性,具體代碼為:

這樣做的結果是:

  • Input:?
  • Select:?
  • InputNumber:?
  • Textarea:?

但是總是覺得直接涉及到React自帶方法的修改,有點不太好。。

4.全局監聽input事件

思路就是全局監聽input這個事件,并在這個事件里去給觸發事件的DOM節點增加spellCheck: false,具體代碼為:

這樣做的結果是:

  • Input:?
  • Select:?
  • InputNumber:?
  • Textarea:?

5.MutationObserver

兼容性比較差,所以不考慮了吧~~~

6.body 直接加 spellcheck="true"

哎。。。都怪沒有好好看文檔。。。其實前面做的都是無用功,最方便的做法是直接在 body 上加 spellcheck="false" 就行了,底下的后代元素會自動繼承這個屬性值。。

圖片

責任編輯:趙寧寧 來源: 前端之神
相關推薦

2021-07-06 21:37:05

索引SQL數據

2011-11-09 13:58:54

IE10瀏覽器

2015-03-12 11:05:38

AndroidCyanogen

2019-01-24 16:11:19

前端全局異常數據校驗

2022-05-03 10:43:43

SpringJava

2015-03-11 09:44:54

AndroidCyanogen

2022-02-03 14:59:13

互聯網春晚流量

2015-09-24 17:41:15

Windows 10

2016-11-14 15:02:28

拼寫檢查安全

2010-03-12 19:03:48

Python 拼寫檢查

2021-09-28 10:37:50

LayUI JDK

2017-12-06 10:50:50

Linux自動喚醒系統運行時間

2015-07-02 10:50:55

SDN

2014-03-04 09:39:41

設計師團隊合作

2012-04-16 14:55:29

MacChrome

2018-07-10 08:56:19

編程程序員開發

2019-06-18 07:15:22

Linux拼寫look命令

2011-09-05 16:52:43

WebOSMeeGo

2022-06-06 16:17:10

云計算運營商IT

2017-12-17 21:33:55

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 337p日本欧洲亚洲大胆精蜜臀 | 欧美精品一区二区在线观看 | 狠狠骚| 午夜看看 | 日韩视频在线观看一区二区 | 亚洲第一女人av | 国产aⅴ爽av久久久久久久 | 国产成人福利 | 久久综合久色欧美综合狠狠 | 国产成人精品一区二区三区在线 | 欧美色综合一区二区三区 | 玖玖视频| 欧美高清免费 | 另类 综合 日韩 欧美 亚洲 | h在线免费观看 | 看片一区| 久久精品亚洲成在人线av网址 | 久久久国产精品 | 亚州毛片 | 亚洲精品二区 | 不卡一区二区三区四区 | 亚洲国产精品一区 | 男人的天堂久久 | 一级片免费在线观看 | 欧美精品一区二区三 | 久久国产精品色av免费观看 | 丁香六月伊人 | 成人在线国产 | 国产免费一级一级 | 日韩三级视频 | 亚洲成人一级 | 黄色网一级片 | 91啪影院| 欧美日韩在线不卡 | 色婷婷综合久久久中字幕精品久久 | 精品成人在线视频 | 久久99精品国产 | 日韩欧美亚洲 | 成人久久网 | 亚洲视频一区二区三区 | 在线国产视频 |