我有一个带有form的组件,其中onSubmit处理程序被设置为this.props.onSubmit。
我试图在这个表单中添加一些额外的功能,我希望它在暂停(1000 it )之后提交。
如果我只调用$inputQuery.trigger('submit'),处理程序就不会有event,我似乎不能用jquery提交表单。
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在特定的onSubmit上触发ref事件?
发布于 2015-09-16 03:41:37
我从这个github问题了解到:
...jQuery不触发真正的DOM事件,而是试图在自己的内部事件映射中找到回调。- 血禽
要模拟/触发事件,请使用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。
https://stackoverflow.com/questions/32599175
复制相似问题