我想提交表单到Node.js,但是当我按下提交按钮时页面重新加载,所以我console.log()
以确保它真的进入该函数,但它不起作用,它没有登录控制台,我试图做一个alert
,但它也不起作用,甚至onSubmit
侦听器中的函数名称都不正确。
下面是代码(完整的代码有点大,它可能会在理解代码时产生问题,所以我只给出主表单代码和onSubmit
侦听器函数)。
功能:
const AddProducts = async (e) => {
alert('asdf');
e.preventDefault();
}
const editTheProduct = async (e) => {
e.preventDefault();
}
表单代码:
<form method='POST' onSubmit={props.addOrEdit === 'ADD' ? AddProducts : editTheProduct} className='AdminProductEdit'>
<div className='LoginInputs'>
<input type='text' name='name' required value={props.addOrEdit === 'ADD' ? newProduct.name : ''} onChange={handleInput} />
<span className="LoginInputSpan">Product Name</span>
</div>
<div className='LoginInputs'>
<input type='text' name='price' required value={props.addOrEdit === 'ADD' ? newProduct.price : ''} onChange={handleInput} />
<span className="LoginInputSpan">Price</span>
</div>
<div className='LoginInputs' style={{ padding: '0', border: 'none', height: 'auto' }}>
<textarea placeholder='Description' />
</div>
<div className="LoginBtn">
<button type="submit" style={{ width: '200px' }}>SAVE CHANGES</button> // the Submit button
</div>
</form>
4条答案
按热度按时间tv6aics11#
这是
j|tsx
,它不是vue,所以这很烦人,你需要弄清楚这是一个编译器正常工作的函数:fd3cxomn2#
将prevent默认值写在表单的第一行,它应该可以工作
另一件事是确保没有其他按钮的类型为提交或按钮没有任何类型。确保为表单中的普通按钮明确给予
type=button
pkln4tw63#
首先检查
props
是否有有效数据,stszievb4#
它的工作原理与我将eventListner单独添加到表单时相同,如下所示
并从表单中删除`onSubmit```监听器,如下所示