键盘事件
inputKeyUp=(e)=>{
if(e.keyCode==13){
alert(e.target.value);
}
}
<input onKeyUp={this.inputKeyUp}/>
事件对象:
<button aid="123" onClick={this.run}>事件对象</button>
run=(event)=>{
// alert(event.target); /*获取执行事件的dom节点*/
event.target.style.background='red';
//获取dom的属性
alert(event.target.getAttribute('aid'))
}
表单事件
1、监听表单的改变事件 onChange
2、在改变的事件里面获取表单输入的值 事件对象
3、把表单输入的值赋值给username this.setState({})
4、点击按钮的时候获取 state里面的username this.state.username
inputChange=(e)=>{
// console.log('111');
//获取表单的值
console.log(e.target.value);
this.setState({
username:e.target.value
})
}
getInput=()=>{
alert(this.state.username);
}
<input onChange={this.inputChange}/> <button onClick={this.getInput}>获取input的值</button>
ref获取dom节点
1、监听表单的改变事件 onChange
2、在改变的事件里面获取表单输入的值 ref获取
3、把表单输入的值赋值给username this.setState({})
4、点击按钮的时候获取 state里面的username this.state.username
inputChange=()=>{
/*
获取dom节点
1、给元素定义ref属性<input ref="username" />
2、通过this.refs.username 获取dom节点
*/
let val=this.refs.username.value;
this.setState({
username:val
})
}
getInput=()=>{
alert(this.state.username);
}
<input ref="username" onChange={this.inputChange}/> <button onClick={this.getInput}>获取input的值</button>
双向数据绑定、即model改变影响View view改变反过来影响model
inputChange=(e)=>{
this.setState({
username:e.target.value
})
}
setUsername=()=>{
this.setState({
username:'李四'
})
}
<input value={this.state.username} onChange={this.inputChange}/>
<p> {this.state.username}</p>
<button onClick={this.setUsername}>改变username的值</button>