Ich möchte textfield
-Werte übergeben, wenn der Benutzer die Eingabetaste über die Tastatur drückt. Im onChange()
-Ereignis erhalte ich den Wert der textbox
, aber wie erhalte ich diesen Wert, wenn die enter
-Taste gedrückt wird?
Code:
import TextField from 'material-ui/TextField';
class CartridgeShell extends Component {
constructor(props) {
super(props);
this.state = {value:''}
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
this.setState({ value: e.target.value });
}
render(){
return(
<TextField
hintText="First Name"
floatingLabelText="First Name*"
value={this.state.value}
onChange={this.handleChange}
fullWidth={true} />
)
}
}
Verwenden Sie das onKeyDown
-Ereignis und überprüfen Sie darin den Tastencode der vom Benutzer gedrückten Taste. Der Schlüsselcode von Enter
ist 13, überprüfen Sie den Code und legen Sie die Logik dort ab.
Überprüfen Sie dieses Beispiel:
class CartridgeShell extends React.Component {
constructor(props) {
super(props);
this.state = {value:''}
this.handleChange = this.handleChange.bind(this);
this.keyPress = this.keyPress.bind(this);
}
handleChange(e) {
this.setState({ value: e.target.value });
}
keyPress(e){
if(e.keyCode == 13){
console.log('value', e.target.value);
// put the login here
}
}
render(){
return(
<input value={this.state.value} onKeyDown={this.keyPress} onChange={this.handleChange} fullWidth={true} />
)
}
}
ReactDOM.render(<CartridgeShell/>, document.getElementById('app'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id = 'app' />
Hinweis: Ersetzen Sie das Element input
durch Material-Ui TextField
und definieren Sie auch die anderen Eigenschaften.
Wenn Sie onKeyPress hinzufügen, wird onChange in Text Field geändert.
<TextField
onKeyPress={(ev) => {
console.log(`Pressed keyCode ${ev.key}`);
if (ev.key === 'Enter') {
// Do code here
ev.preventDefault();
}
}}
/>
html
<input id="something" onkeyup="key_up(this)" type="text">
script
function key_up(e){
var enterKey = 13; //Key Code for Enter Key
if (e.which == enterKey){
//Do you work here
}
}
Nächstes Mal, bitte versuche es mit etwas Code.