gpt4 book ai didi

javascript - 触发 onSubmit 事件

转载 作者:行者123 更新时间:2023-12-02 15:40:45 27 4
gpt4 key购买 nike

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

我正在尝试向此表单添加一些额外的功能,我希望它在暂停(1000 毫秒)后提交。

如果我只是调用 .onSubmit() 处理程序将不会使用 jquery $inputQuery.trigger('submit') 提交表单有事件

  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 事件?

最佳答案

来自this github issue我了解到:

...jQuery doesn't trigger a real DOM event, but tries to find callbacks in its own internal event map... — bloodyowl

要模拟/触发事件,请使用 React.addons.TestUtils.Simulate 方法,例如 .click().submit()并提供一个节点

这将 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

关于javascript - 触发 onSubmit 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com