REACT - FORMS
Links
//FORMS
//We check inputs as the states changes, with every key stroke
import React from 'react'
class App extends React.Component {
constructor(){
super()
this.state ={
firstName: "",
lastName: ""
}
this.handleChange = this.handleChange.bind(this)
}
handleChange(event){
// const {name, value} = event.target
this.setState({
[event.target.name]: event.target.value
// [name]: value //si se activa arriba: const {name, value} = event.target
})
}
//Importance of "name, it matches the this.state in constructor"
render(){
return (
<form>
<input type="text" value={this.state.firstName} name="firstName" placeholder="First Name" onChange={this.handleChange}></input>
<input type="text" value={this.state.lastName} name="lastName" placeholder="Last Name" onChange={this.handleChange}></input>
<h1>{this.state.firstName} {this.state.lastName}</h1>
</form>
)
}
}
export default App;
//FORMS 2
//We check inputs as the states changes, with every key stroke
import React from 'react'
class App extends React.Component {
constructor(){
super()
this.state ={
firstName: "",
lastName: "",
isFriendly: true,
gender: "",
favColor: "blue"
}
this.handleChange = this.handleChange.bind(this)
}
handleChange(event){
const {name, value, type, checked} = event.target
type == "checkbox" ? this.setState({[name]:checked}) : this.setState({[name]: value})
}
//Importance of "name, it matches the this.state in constructor"
render(){
return (
<form onSumbit="">
<input type="text" value={this.state.firstName} name="firstName" placeholder="First Name" onChange={this.handleChange}></input>
<input type="text" value={this.state.lastName} name="lastName" placeholder="Last Name" onChange={this.handleChange}></input>
<br/>
<textarea value={"Default value"} onChange={this.handleChange}/>
<br/>
<label>
<input type="checkbox" name="isFriendly" checked={this.state.isFriendly} onChange={this.handleChange}/> isFriendly?
</label>
<br/>
<label>
<input type="radio" name="gender" value="male" checked={this.state.gender === "male"} onChange={this.handleChange}/> Male
</label>
<br/>
<label>
<input type="radio" name="gender" value="female" checked={this.state.gender === "female"} onChange={this.handleChange}/> Female
</label>
<br/>
<label></label>
<select value={this.state.favColor} onChange={this.handleChange} name="favColor">
<option value="blue">blue</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
<option value="white">white</option>
</select>
<h1>{this.state.firstName} {this.state.lastName}</h1>
<h1>{this.state.isFriendly}</h1>
<h1>{this.state.gender}</h1>
<h1>Favorite color {this.state.favColor}</h1>
<button onClick="">Submit</button>
{/* <input type="submit">Submit</input> */}
</form>
)
}
}
export default App;
// FORMS PRACTICE
//FORMS
//We check inputs as the states changes, with every key stroke
import React from 'react'
class App extends React.Component {
constructor(){
super()
this.state ={
firstName: "",
lastName: "",
age: "",
gender: "",
destination: "",
isVegan: false,
isKosher: false,
isLactoseFree: false
}
this.handleChange = this.handleChange.bind(this)
}
handleChange(event){
const {name, value, type, checked} = event.target
type === "checkbox" ?
this.setState({
[name]:checked
})
:
this.setState({[name]: value})
}
//Importance of "name, it matches the this.state in constructor"
render(){
return (
<main>
<form onSumbit="">
<input type="text" value={this.state.firstName} name="firstName" placeholder="First Name" onChange={this.handleChange}></input><br/>
<input type="text" value={this.state.lastName} name="lastName" placeholder="Last Name" onChange={this.handleChange}></input><br/>
<input type="text" value={this.state.age} name="age" placeholder="Age" onChange={this.handleChange}></input><br/>
<label>
Gender:
<input type="radio" name="gender" value="male" checked={this.state.gender === "male"} onChange={this.handleChange}/> Male
<input type="radio" name="gender" value="female" checked={this.state.gender === "female"} onChange={this.handleChange}/> Female
</label>
<br/>
<label>Destination:</label>
<select value={this.state.destination} onChange={this.handleChange} name="destination">
<option value="Berlin">Berlin</option>
<option value="Tokyo">Tokyo</option>
<option value="San Francisco">San Francisco</option>
<option value="Rome">Rome</option>
</select> <br/>
<label>Dietary restrictions</label> <br/>
<label>
<input type="checkbox" name="isVegan" checked={this.state.isVegan} onChange={this.handleChange}/>Vegan
</label>
<label>
<input type="checkbox" name="isKosher" checked={this.state.isKosher} onChange={this.handleChange}/>Kosher
</label>
<label>
<input type="checkbox" name="isLactoseFree" checked={this.state.isLactoseFree} onChange={this.handleChange}/>Lactose Free
</label>
<h1>Entered information</h1>
<p>Name: {this.state.firstName} </p>
<p>Surname: {this.state.lastName} </p>
<p>Age: {this.state.age} </p>
<p>Gender: {this.state.gender} </p>
<p>Destination: {this.state.destination} </p>
<p>Dietary Restrictions: Vegan {this.state.isVegan ? "Yes" : "No"} , Kosher {this.state.isKosher ? "Yes" : "No"} , LactoseFree {this.state.isLactoseFree ? "Yes" : "No"} </p>
<button onClick="">Submit</button>
</form>
</main>
)
}
}
export default App;