在下面的代码片段中,我有许多类型为文本的输入表单。如果用户点击 ,似乎我得到了与他们按下提交按钮相同的合成事件。我想忽略作为表单提交,只允许一个人按下提交按钮。 (我删除了一些表单组以减少示例)。
在所有情况下(按钮或 ENTER 键)
e.key is undefined
e.which is undefined
e.type is submit
e.target is the submit button
(这是一个合成事件)
const React = require('react')
import { Form, FormControl, FormGroup, ControlLabel, Col, Button, Tooltip, OverlayTrigger } from 'react-bootstrap'
const Configuration = ({ ServerPort, UserID, PortNumber, WWWUrl, SourcePath, FMEPath }) => {
const buttonAction = (e) => {
e.preventDefault();
alert(e.target.innerHTML)
}
return (
<Form horizontal>
<FormGroup controlId="serverPortBox">
<Col componentClass={ControlLabel} sm={2}>Watson Port:</Col>
<Col sm={10}>
<OverlayTrigger placement="left" overlay={(<Tooltip id="tt1">TCP port for Watson to use</Tooltip>)}>
<FormControl type="number" min="1024" max="65535" placeholder={ServerPort} />
</OverlayTrigger>
</Col>
</FormGroup>
<FormGroup controlId="dbPortBox">
<Col componentClass={ControlLabel} sm={2}>Database Port:</Col>
<Col sm={10}>
<OverlayTrigger placement="left" overlay={(<Tooltip id="tt3">TCP port for PostGreSql DB</Tooltip>)}>
<FormControl type="number" min="1024" max="65535" placeholder={PortNumber} />
</OverlayTrigger>
</Col>
</FormGroup>
<Button type="submit" bsStyle="primary" block onClick={(e) => buttonAction(e)}>Update Configuration</Button>
</Form>
)
}
export default Configuration
最佳答案
也许应该插入类型为“button” 的按钮而不是“submit”?然后只处理此按钮的 onClick
?
关于javascript - 如何在 react-bootstrap 中禁用表单提交的 <ENTER> 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43767888/