admin管理员组文章数量:1394526
This is my code. Am new for Reactjs, am trying to create form and display user info. I want to display the user details below the form after clicked the submit form
import React, {Component} from 'react';
class Input extends Component {
state = {
firstName: ''
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({firstName: updatedName});
//console.log(updatedName);
}
render() {
return(
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler}/>
<button type="button" onSubmit={e => this.displayNameHandler(e)}>Submit</button>
<p>"FirstName: " {this.state.firstName}</p>
</form>
</div>
);
}
}
export default Input;
This is my code. Am new for Reactjs, am trying to create form and display user info. I want to display the user details below the form after clicked the submit form
import React, {Component} from 'react';
class Input extends Component {
state = {
firstName: ''
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({firstName: updatedName});
//console.log(updatedName);
}
render() {
return(
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler}/>
<button type="button" onSubmit={e => this.displayNameHandler(e)}>Submit</button>
<p>"FirstName: " {this.state.firstName}</p>
</form>
</div>
);
}
}
export default Input;
Share
Improve this question
edited Sep 2, 2018 at 7:36
Luca Kiebel
10.1k7 gold badges32 silver badges46 bronze badges
asked Sep 2, 2018 at 6:55
RajRaj
532 gold badges3 silver badges9 bronze badges
0
4 Answers
Reset to default 4Add onClick
on button and change type its to submit
. Use conditional rendering to show name on submit:
import React, { Component } from 'react';
class Input extends Component {
state = {
firstName: '',
showName: false
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({ firstName: updatedName });
//console.log(updatedName);
}
handleSubmit = (e) => {
e.preventDefault();
this.setState({
showName: true
});
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler} value={this.state.firstName} />
<button type="submit" onClick={this.handleSubmit}>Submit</button>
{this.state.showName && <p>"FirstName: " {this.state.firstName}</p>}
</form>
</div>
);
}
}
export default Input;
if you want to use the button you should make another state to keep the submitted data and a state to keep changes in input field
import React, { Component } from "react";
class Input extends Component {
constructor(props) {
super(props);
this.state = {
firstName: "",
submitedFirstName: ""
};
}
inputChange = e => {
const firstName = e.target.value;
this.setState(() => ({ firstName }));
};
displayNameHandler = () => {
this.setState(prevState => ({ submitedFirstName: prevState.firstName }));
};
render() {
return (
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<button type="button" onClick={this.displayNameHandler}>
Submit
</button>
<p>
"FirstName: "
{this.state.submitedFirstName && this.state.submitedFirstName}
</p>
</form>
</div>
);
}
}
export default Input;
if you want to have on submit simply remove onClick from button cause it has a default type of submit and put an onSubmit in form ponent and also you sould prevent forms default behavior.
displayNameHandler = e => {
e.preventDefault();
this.setState(prevState => ({ submitedFirstName: prevState.firstName }));
};
and
<form onSubmit={this.displayNameHandler}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<button>Submit</button>
<p>
"FirstName: " {this.state.submitedFirstName && this.state.submitedFirstName}
</p>
</form>
but you can also show data in input change
import React, { Component } from "react";
class Input extends Component {
constructor(props) {
super(props);
this.state = {
firstName: ""
};
}
inputChange = e => {
const firstName = e.target.value;
this.setState(() => ({ firstName }));
};
render() {
return (
<div>
<form>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.inputChange} />
<p>
"FirstName: "
{this.state.FirstName && this.state.FirstName}
</p>
</form>
</div>
);
}
}
export default Input;
also pay attention to the constructor.
Bellow form you should put something like this
{this.state.firstName !=="" && <p>{this.state.firstName}</p>}
import React, { Component } from 'react';
class Input extends Component {
state = {
firstName: '',
}
displayNameHandler = (e) => {
let updatedName = e.target.value;
this.setState({ firstName: updatedName });
//console.log(updatedName);
}
handleSubmit = () => {
alert("The Name you Entered is" , this.state.firstName);
}
render() {
return (
<div>
<form onSubmit={this.handleSubmit}>
<label>Enter the Name</label>
<input type="text" name="firstName" onChange={this.displayNameHandler} value={this.state.firstName} />
<button type="submit" onClick={this.handleSubmit}>Submit</button>
</form>
</div>
);
}
}
export default Input;
本文标签: javascripthow to display user info after clicked submit in react jsStack Overflow
版权声明:本文标题:javascript - how to display user info after clicked submit in react js - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744100216a2590838.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论