reactjs - Hvordan får man værdien fra en Material UI tekstfelt efter at have trykket på enter?
Jeg kan ikke få inputværdien med denne kode. Jeg prøvede med onKeyUp, onKeyDown og onKeyPress, men de virkede ikke, fordi de ikke returnerer værdien. Normalt får man værdien med onChange-egenskaben, men den udløses ved hvert nye indtastede tegn.
<TextField
style={{ margin: 8 }}
placeholder="Add a task"
fullWidth
margin="normal"
onKeyPress={(e) => {
if (e.key === "Enter") {
console.log("Enter key pressed");
// write your functionality here
}
}}
/>;
Svar #1
Med e.target.value kan du få inputværdien. Tilføj e.preventDefault for at undgå en uventet adfærd:
const onKeyPress = (e) => {
if (e.key === "Enter") {
console.log('Input value', e.target.value);
e.preventDefault();
}
}
<TextField
...
onKeyPress={onKeyPress}/>
Arbejds eksempel
Svar #2
Faktisk, det meste af tiden, hvis du ønsker at have denne adfærd, er det mest sandsynligt, at du opretter en formular. Så pak TextField ind i en form og implementer onSubmit-begivenheden.
