gpt4 book ai didi

javascript - Reactjs:表单操作方法和 onSubmit

转载 作者:数据小太阳 更新时间:2023-10-29 05:28:33 27 4
gpt4 key购买 nike

我有一种情况需要提交我的表格。当我使用这个方法时 1

方法一

<form action="my_redirect_url" method="post" onSubmit={this.registerEmail.bind(this)}>
<input
type="text"
placeholder='Email address'
name='EMAIL'
value={this.state.email}
onChange={this.handleChangeEmail}
/>
<button type='submit' />
</form>

然后表单完美提交,但我错过了表单验证,即电子邮件验证部分。有效与否,表单重定向

方法二

// onSubmit method
registerEmail = (e) => {
e.preventDefault();
let { email } = this.state;
let emailValidated = validateEmail(email);
if (emailValidated) {
fetch('my_redirect_url', {
method: 'post',
body : JSON.stringify({
EMAIL: email
}),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
})
.then(ParseJSON) // It parses the output
.catch(function(error) {
console.log("error---", error)
});
} else {
alert("invalid email")
}
}

// Form
<form onSubmit={this.registerEmail.bind(this)}>
<input
type="text"
placeholder='Email address'
name='EMAIL'
value={this.state.email}
onChange={this.handleChangeEmail}
/>
<button type='submit' />
</form>

在方法 2 中,验证已正确完成,但随后它不会重定向并提示错误 Fetch api cannot load 'my_redirect_url' Response for preflight is invalid (redirect)

问题是什么,如何解决?

最佳答案

如果你告诉程序e.preventDefault(),那么他将不会执行我们都在等待的正常重定向。

反之亦然,您必须删除它才能在之后重定向用户。如果电子邮件不正确,仅使用 preventDefault()

关于javascript - Reactjs:表单操作方法和 onSubmit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45817336/

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