问题原因
在 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