如何防止使用 React 单击时在 <input type=submit> 中发布表单
How to prevent form posting in <input type=submit> on click using React
我的 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 中提供)时,你应该真正理解不同之处。如果你不知道箭头函数是什么,是时候扩展你的知识了。
祝你好运和代码乐趣!
我只是在解释@delig29 刚才说的。
当您创建 <input type="submit" onClick={this.onSubmitForm} />
提交类型按钮的 onClick 函数会触发一个事件并将其传递给 this.onSubmitForm
.
的 onClick 方法
当你定义这个函数时,它会是这样的
onSubmitForm = (e) => { // Here I am passing e(event) as a @param
// This method call of the event **preventDefault** will
// trigger an event which will disable the browsers default behavior
// to reload the page on hitting form submit
e.preventDefault();
/**
** Do Whatever You Want Here With Your Code
**/
}
我的 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 中提供)时,你应该真正理解不同之处。如果你不知道箭头函数是什么,是时候扩展你的知识了。
祝你好运和代码乐趣!
我只是在解释@delig29 刚才说的。
当您创建 <input type="submit" onClick={this.onSubmitForm} />
提交类型按钮的 onClick 函数会触发一个事件并将其传递给 this.onSubmitForm
.
当你定义这个函数时,它会是这样的
onSubmitForm = (e) => { // Here I am passing e(event) as a @param
// This method call of the event **preventDefault** will
// trigger an event which will disable the browsers default behavior
// to reload the page on hitting form submit
e.preventDefault();
/**
** Do Whatever You Want Here With Your Code
**/
}