border-radius: 10px;
margin-top: 20px;
outline: none;
+ /* 软键盘弹出时保证输入框可见 */
+ scroll-margin-bottom: 80px;
}
input:focus {
// 阻止复制/剪切/粘贴/右键,防止单词被复制后粘贴作弊
const blockClipboard = (e) => e.preventDefault();
- // 输入框统一属性:禁用粘贴/右键/输入法联想/自动补全,强制逐字母键盘输入
+ // 输入框统一属性:强制英文输入、禁用中文输入法/自动大写/自动补全/粘贴
const inputProps = {
- onPaste: blockClipboard,
- onContextMenu: blockClipboard,
- onCompositionStart: blockClipboard, // 阻止输入法联想
+ type: "text",
+ lang: "en",
+ inputMode: "latin", // 唤起英文/拉丁字母软键盘
autoComplete: "off",
autoCorrect: "off",
- autoCapitalize: "off",
+ autoCapitalize: "off", // 首字母不大写
spellCheck: false,
- inputMode: "latin",
+ onPaste: blockClipboard,
+ onContextMenu: blockClipboard,
+ onCompositionStart: blockClipboard, // 阻止输入法联想
};
return (
border: 2px solid #ddd;
border-radius: 10px;
outline: none;
+ /* 软键盘弹出时保证输入框可见 */
+ scroll-margin-bottom: 80px;
}
.test-input:focus {
border: 2px solid #ddd;
border-radius: 10px;
outline: none;
+ /* 软键盘弹出时保证输入框可见 */
+ scroll-margin-bottom: 80px;
}
.copy-input:focus {
// 阻止复制/剪切/粘贴/右键,防止单词被复制后粘贴作弊
const blockClipboard = (e) => e.preventDefault();
- // 输入框统一属性:禁用粘贴/右键/输入法联想/自动补全,强制逐字母键盘输入
+ // 输入框统一属性:强制英文输入、禁用中文输入法/自动大写/自动补全/粘贴
const inputProps = {
- onPaste: blockClipboard,
- onContextMenu: blockClipboard,
- onCompositionStart: blockClipboard, // 阻止输入法联想
+ type: "text",
+ lang: "en",
+ inputMode: "latin", // 唤起英文/拉丁字母软键盘
autoComplete: "off",
autoCorrect: "off",
- autoCapitalize: "off",
+ autoCapitalize: "off", // 首字母不大写
spellCheck: false,
- inputMode: "latin",
+ onPaste: blockClipboard,
+ onContextMenu: blockClipboard,
+ onCompositionStart: blockClipboard, // 阻止输入法联想
};
// 准备阶段