ReactJS的onSubmit表单不起作用

ReactJS onSubmit on form doesn't work

本文关键字:不起作用 表单 onSubmit ReactJS      更新时间:2023-09-26

我有一个神秘的问题:当我点击按钮或按回车键时,什么都没有发生。

Row = ReactBootstrap.Row
Col = ReactBootstrap.Col
Input = ReactBootstrap.Input
Button = ReactBootstrap.Button
@NewSession = React.createClass
  handleSubmit: (e) ->
    alert 'f'
    e.preventDefault()
    Dispatcher.query('sessions', {}, 'POST')
  render: ->
    <form onSubmit={@handleSubmit} noValidate>
      <Row>
        <Col md={6} mdOffset={3} className='text-center'>
          <Input type='text' placeholder='Your username' ref='login' />
          <Input type='text' placeholder='Your password' ref='password' />
          <Button bsStyle='success'>Sign in</Button>
        </Col>
      </Row>
    </form>

这种奇怪行为的原因是什么?为什么handlessubmit不工作?

如果我把onClick={@handleSubmit}处理程序放在按钮上,点击它就可以了

react-bootstrap Button组件默认为type="button",因此您需要添加type="submit"来创建提交按钮。

<Button type='submit' bsStyle='success'>Sign in</Button>

您没有任何提交事件…您需要在呈现方法中声明type=submit。然后你可以使用onSubmit事件处理函数。在下面的例子:

   <form onSubmit={this.handleSubmit.bind(this)}>
		<div className="form-group col-sm-7">
          <input type="text" className="form-control" ref="inputmessage" id="inputDefault" />
		</div>
	  <div className="form-group col-sm-5">
		<button type="submit" className="btn btn-block btn-primary">Send Message </button>
		</div>
  </form>