React - on form submit get POST params

i_t*_*ope 11 javascript reactjs

我正在使用React,并希望从表单中检索POST参数(见下文):

<form ref='form' className="form">
    <input type="text" className="signup-input" />
    <input type="text" className="signup-input" />
    <button className="btn btn-primary" onClick={this._onSubmitClick}>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

_onSubmitClick回调中,我希望实现与调用相同的结果,$(".form").serialize()但不使用JQuery.

Joe*_*Joe 11

var elements = this.refs.form.getDOMNode().elements;
Run Code Online (Sandbox Code Playgroud)

为您提供一个包含每个input节点的对象,然后您可以迭代这些节点.

  • `getDomNode`已弃用.这样做:`import {findDOMNode}来自'react-dom'; var elements = findDOMNode(this.refs.form).elements;` (2认同)
  • 查看`FormData`,https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData. (2认同)

Far*_*uti 6

除了答案,我认为有人会喜欢这个;)

export default class LoginView extends React.Component {
    handleSubmit(evt) {
        const formData = Array.from(evt.target.elements)
            .filter(el => el.name)
            .reduce((a, b) => ({...a, [b.name]: b.value}), {});
        console.log(formData);
        evt.preventDefault();
        return false;
    }

    render() {
        return (<form onSubmit={this.handleSubmit}>...</form>)
    }
}
Run Code Online (Sandbox Code Playgroud)