javascript - 如何使用 React 防止点击时在 <input type=submit> 中发布表单

标签 javascript reactjs

我的 jsx 文件中有这个:

<input type="submit" onClick={() => this.validateForm()} id="account-submit" value="Sign Up" />

函数 validateForm 被调用,但之后,提交按钮发布表单的默认行为完成,因此页面重新加载完成。如何仅触发 onClick 函数并阻止提交发生以防止重新加载?

编辑 - 根据答案添加此内容

validateForm: function (e) {
    e.preventDefault();
}

e 未定义

最佳答案

您可以使用e.preventDefault() 。您可以更改您的input元素为:

<input type="submit" onClick={this.validateForm} id="account-submit" value="Sign Up" />

validateForm中功能:

validateForm = e => {
    e.preventDefault(); 
    // your code here
}

更新:

如果使用 validateForm 中的箭头函数就像我的例子一样,我相信它会很好地工作。

如果您想使用function(e)就像您添加的代码一样,您应该更改一些内容。在你的input标签:

<input type="submit" onClick={e => this.validateForm(e)} id="account-submit" value="Sign Up" />

在您的 validateForm 中功能:

validateForm = function(e) {
    console.log('Hello world');
    console.log(e);
}

上面的代码对我来说效果很好。当你使用箭头函数(ES6 中提供)和普通函数(旧版 ES 中提供)时,你应该真正理解不同之处。如果您不知道箭头函数是什么,那么是时候扩展您的知识了。

祝你好运,享受编码乐趣!

关于javascript - 如何使用 React 防止点击时在 &lt;input type=submit> 中发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43884179/

相关文章:

javascript - 如何将多个 SVG 转换为一张 PNG 图像?

javascript - 网络音频 API : How do I add a working convolver?

javascript - 制表符,有没有办法将页面总和添加到页脚?

reactjs - 尝试导入错误 : 'fade' is not exported from '@material-ui/core/styles'

javascript - JS React 如何查看歌曲当前时间并进行倒计时?

JavaScript 竞争条件?

用于操作 DOM API 的 Javascript 设计模式

javascript - 类型 'void' 不可分配给类型 '(event: MouseEvent<HTMLDivElement, MouseEvent>) => void'

reactjs - React.Component.defaultProps 对象被覆盖,而不是合并?

javascript - 用 enzyme 和 connect() 进行开 Jest 测试,给出 `import connectAdvanced from ' ../components/connectAdvanced';`