React中输入值的自动大写
Auto Capitalization of Input value in React
所以我有一个输入字段,它接受用户输入的任何输入,我已经使用 CSS 样式让它看起来像首字母自动大写:textTransform: capitalize
但是当我将 useState 变量分配给输入字段,该值未正确大写,如输入字段所示。我希望 useState 变量的值具有正确的大写,如输入字段中所示。
这是我的简单代码:
import {useState} from "react"
import "./styles.css";
import {Input} from "antd";
export default function App() {
const [text, setText] = useState("")
return (
<div className="App">
<Input placeHolder="Type Something" style={{textTransform:"capitalize"}} onChange={(e)=>{setText(e.target.value)}}/>
<br/>
value = {text}
</div>
);
}
这里还有一个codesandbox link为了更好的可视化
将输入传递给状态时需要更改输入的值:
onChange={(e) => {
setText(e.target.value.charAt(0).toUpperCase() + e.target.value.slice(1));
}
您可以试试下面的代码:
import React,{useEffect, useState} from "react"
const Home=()=>{
const [text, setText] = useState("")
const changeInput = (e)=>{
let str = e.target.value;
let con = str.split(' ')
.map(function (word, index) {
// First character upper case else lower case
return word.charAt(0)
.toUpperCase() + word.slice(1)
.toLowerCase();
})
.join(' ');
setText(con);
}
return (
<div>
<input placeHolder="Type Something" style={{textTransform:"capitalize"}} onChange={(e)=>changeInput(e)}/>
<br/>
value = {text}
</div>
);
}
export default Home;
所以我有一个输入字段,它接受用户输入的任何输入,我已经使用 CSS 样式让它看起来像首字母自动大写:textTransform: capitalize
但是当我将 useState 变量分配给输入字段,该值未正确大写,如输入字段所示。我希望 useState 变量的值具有正确的大写,如输入字段中所示。
这是我的简单代码:
import {useState} from "react"
import "./styles.css";
import {Input} from "antd";
export default function App() {
const [text, setText] = useState("")
return (
<div className="App">
<Input placeHolder="Type Something" style={{textTransform:"capitalize"}} onChange={(e)=>{setText(e.target.value)}}/>
<br/>
value = {text}
</div>
);
}
这里还有一个codesandbox link为了更好的可视化
将输入传递给状态时需要更改输入的值:
onChange={(e) => {
setText(e.target.value.charAt(0).toUpperCase() + e.target.value.slice(1));
}
您可以试试下面的代码:
import React,{useEffect, useState} from "react"
const Home=()=>{
const [text, setText] = useState("")
const changeInput = (e)=>{
let str = e.target.value;
let con = str.split(' ')
.map(function (word, index) {
// First character upper case else lower case
return word.charAt(0)
.toUpperCase() + word.slice(1)
.toLowerCase();
})
.join(' ');
setText(con);
}
return (
<div>
<input placeHolder="Type Something" style={{textTransform:"capitalize"}} onChange={(e)=>changeInput(e)}/>
<br/>
value = {text}
</div>
);
}
export default Home;