html - iPhone将只关注屏幕上两个的一个html输入文本?
问题描述
所以我在 React 应用程序中有两个输入文本框。我可以输入一个输入,但它拒绝关注另一个。如果我将焦点放在文本框之外并单击另一个,它会重新聚焦在第一个文本框上。如果我重新加载页面并首先输入第二个文本框,那么它拒绝关注第一个文本框。
我试过“-webkit-user-select: text;” 我在类似的帮助问题中找到了方法,但无济于事。该问题仅发生在 iOS 设备上。
这是我的 SCSS -
.formField {
input {
border: 1px solid var(--line-color);
width: 380px;
height: 45px;
background-color: var(--background-color1);
padding: 10px;
font-size: 19px;
font-family: var(--font-family-semibold);
color: var(--text-color);
box-sizing: border-box;
&::placeholder {
font-size: 19px;
color: var(--placeholder-color);
font-family: var(--font-family-semibold);
}
&:focus {
padding: 9px;
outline: var(--onfocus-outline);
border: var(--onfocus-border);
border-radius: var(--onfocus-border-radius);
}
@include for-phone-portrait {
width: 310px;
height: 40px;
}}}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
解决方案
实际上与SCSS无关。我们正在使用以下方法为带有货币掩码的字符设置正确的位置,并且它同时在onChange
和上触发onBlur
。阻止它发射onBlur
消除了这个问题。
if (!isBlur) setTimeout(() => { inputElement.setSelectionRange(caretPos,
caretPos); },
推荐阅读
- nginx - 为什么 nginx 不拦截带有 proxy_intercept_errors 的错误?
- r - R - 如何使用 sjPlot 包绘制 clmm2 模型
- c++ - 在 Windows 中编译 OpenSSL - 生成的 LIB 对 DLL 文件使用错误的名称
- flutter - Dart/flutter 登录 Post 请求
- firebase - 如何通过 Flutter 使用 Firebase_Auth 登录 Twitter
- python - 如何从python中的多个对象属性创建字符串变量?如何计算地理距离?
- c# - 如何使 Url.Action() 识别在引用的 Razor 类库中定义的区域?
- c# - C# - 当另一个程序正在写入文件时,无法将文件上传到 FTP 服务器
- tensorflow - ValueError:记分器初始化失败,错误代码为 1
- amazon-ec2 - 如何将 terraform 导入与资源配置一起使用