一、 原生DOM表单
handleSubmit = () => {
var username = document.getElementById('getName').value;
}
render() {
return (
<div>
<input type="text" id="getName" placeholder="用户名" />
<button onClick={this.handleSubmit}> 获取用户名</button>
//参数传递需要1. this.handleSubmit.bind(this,params)
// 2.()=>this.handleSubmit(params)
</div>
)
}
二、 refs
使用refs需要注意的地方:
- Refs是访问组件内部DOM节点唯一看可靠的方法
- Refs会自动销毁对组件的引用
- 不要在render或者render之前对Refs进行调用
- 不要滥用Refs(会影响性能)
- ref可以设置字符串,也可以设置回调函数(推荐)。
handleSubmit = () => {
var username = this.refs.submit.value;
}
render() {
return (
<div>
<input ref="submit" type="text" placeholder="用户名" />
<button onClick={this.handleSubmit}> 获取用户名</button>
</div>
)
}
三、 event.target.value
handleSubmit = (event) => {
var username = event.target.value;
}
render() {
return (
<div>
<input type="text" onclick={this.handleSubmit} placeholder="用户名" />
</div>
)
}
四、ant-design(Form组件)
ant-design框架自带获取表单数据的用法 this.props.form.getFieldsValue()
import {Card, Form, Input,message} from 'antd'
class FormLogin extends React.Component {
handleSubmit = () => {
//获取表单数据
let userInfo = this.props.form.getFieldsValue()
}
render() {
const {getFieldDecorator} = this.props.form //使用数据绑定方法
return (
<div>
<Form layout="vertical">
<FormItem>
{
getFieldDecorator('userName', {
initialValue: '',//初始化数据
rules: [//验证规则
{
required: true,
message: '用户名不能为空'
}
]
})(
<Input prefix={ <Icon type="user"></Icon> } placeholder="请输入用户名"/>
)
}
</FormItem>
<FormItem>
<Button type="primary" onClick={this.handleSubmit}>登陆</Button>
<FormItem>
</Form>
</div>
)
}
}
export default Form.create()(FormLogin);