iOS上的日文假名键盘无法正常使用,输入的大写英文字母反应js

问题描述

面对iOS上日语键盘一个非常奇怪的问题。 我正在为Japenese语言环境进行应用程序本地化和自定义,我们还支持移动设备。

如果在iOS上添加Japanese - Kana键盘,然后在输入时按ABC,则可以在同一键盘内切换到英文字母,外观类似于旧手机上的键盘

如果我希望用户仅输入大写字母,我会在React上做非常简单的onChange事件处理,但是如果我在第二个字母的输入处专门使用此键盘,它将复制以前的。

反应代码(使用create-react-app生成的应用):

import React,{ useState } from 'react';

const TextInput = ({handleChange,value}) => {
  return (
    <input onChange={handleChange} value={value}/>
  )
};

const TextField = () => {

  const [value,setValue] = useState();

  const handleChange = (event) => {
    
    const value = event.target.value;
    const upperCaseString = value.toupperCase();
    debugger;
    setValue(upperCaseString);
  }

  return (<TextInput handleChange={handleChange} value={value}/>)
}

function App() {
  return (
    <div className="App">
      <TextField/>
    </div>
  );
}

export default App;

一个输入:

It's correct and works as expected

event.target.value ==='a'

第二个输入:

It's incorrect since some of the letters are duplicated (a)

event.target.value ==='Aad';

这是错误!我只按了d,应该改Ad

我认为是键盘特有的行为,它忽略了已经存在的大写字母,如果我调试它,我会在每个onChange上仍然会有普通的小写字母。

我最终希望使常规字符串不重复所有大写字母。

您对地狱到底是怎么回事以及如何解决有任何想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...