问题原因
在 Mac 系统中默认使用 Safari
的内核 WKWebView
作为渲染引擎,而 Safari
浏览器的一些 “人性化” 机制:如果输入框中输入的是全小写英文,会自动将首字母转换为大写。
解决办法
我只需要禁止这个默认的行为,即可解决这个问题。在 input 组件中添加 autoCapitalize
、spellCheck
、autoComplete
、autoCorrect
等属性就能完美解决首字母自动转大写的问题。
autocomplete="off"
autoCapitalize="off"
autoCorrect="off"
spellCheck="false"
因为我用的elementui,所以我的是el-input标签,其实和input标签一样
如果是AntdUI的话,也可以这样:
const disabledAutoCapitalize = {spellCheck: false,autoComplete: 'off',autoCorrect: 'off',autoCapitalize: 'off',
}const Com = () => {return (<div className="box"><Input {...disabledAutoCapitalize} />{/* other code*/}</div>)
}export default Com