此表单使用react-bootstrap样式。提交按钮会中断并重新启动此表单中的应用程序。当我将按钮移到表单标记之外时,它就工作了。是什么原因呢?我想保留表单标记中的按钮以进行样式设置。
<Form>
<Form.Row>
<Col xs={9}>
<Form.Group>
<InputGroup>
<InputGroup.Prepend>
<InputGroup.Text id="inputGroupPrepend">@</InputGroup.Text>
</InputGroup.Prepend>
<Form.Control
type="text"
placeholder="Username"
aria-describedby="inputGroupPrepend"
name="username"
value={this.state.username}
onChange={(event) => {
console.log(`${this.state.username}`);
this.setState({username: event.target.value});
}}
required
/>
<Form.Control.Feedback type="invalid">
Please choose a username.
</Form.Control.Feedback>
</InputGroup>
</Form.Group>
</Col>
<Col>
<Button variant="primary"
type="submit"
onClick={() => {
try {
console.log("Submit button clicked");
} catch (error) {
console.log(error);
}
}}>
Submit
</Button>
</Col>
</Form.Row>
</Form>
2条答案
按热度按时间exdqitrt1#
您应该尝试将按钮的类型从“提交”更改为“按钮”。或者一起删除类型参数。目前,提交类型按钮允许表单执行onSubmit,而忽略按钮自己的onClick。
mum43rcc2#
这是因为onClick事件覆盖了type=“submit”功能。从而只触发onClick事件。
你可能不需要答案了,但我刚刚遇到了同样的问题。