触发onSubmit事件

Trigger onSubmit event

本文关键字:事件 onSubmit 触发      更新时间:2023-09-26

我有一个具有form的组件,其中onSubmit处理程序设置为this.props.onSubmit

我试图添加一些额外的功能,这个形式,我希望它提交后暂停(1000ms)。

我似乎不能提交表单与jquery $inputQuery.trigger('submit')如果我只是调用.onSubmit()处理程序不会有event

  componentDidMount: function () {
    console.log('hi')
    var _this = this
    var dn = React.findDOMNode(this.refs.inputQuery)
    var $inputQuery = $(dn)
    $inputQuery.on('keyup', function () {
      console.log('bo')
      delay(function () {
        console.log('boook')
        // $inputQuery.trigger('submit') // doesn't work
        // $inputQuery.submit() // doesn't work
        _this.props.onSubmit()
      }, 1000)
    })
  },

如何使用react触发特定ref上的onSubmit事件?

从这个github问题我了解到:

…jQuery不会触发真正的DOM事件,但会尝试在自己的内部事件映射中查找回调……本;bloodyowl

模拟/触发事件使用React.addons.TestUtils.Simulate, .click().submit()的方法和node提供。

componentDidMount更改为:

function () {
  var time = this.props.fireSubmitOnEntry
  if (this.props.fireSubmitOnEntry) {
    var inputNode = React.findDOMNode(this.refs.inputQuery)
    var formNode = React.findDOMNode(this.refs.form)
    var $input = $(inputNode)
    $input.on('keyup', function (e) {
      var code = e.which
      if (code === 13) return false
      delay(function () {
        React.addons.TestUtils.Simulate.submit(formNode)
      }, time)
    })
  }
}

请记住使用var React = require('react/addons')npm来访问TestUtils