表单
表单控件样式、布局选项和自定义组件的示例和使用指南,用于创建各种表单。
概述
<FormControl> 组件使用 Bootstrap 样式渲染表单控件。<FormGroup> 组件使用适当的间距包装表单控件,并支持标签、帮助文本和验证状态。为了确保可访问性,请在 <FormGroup> 上设置 controlId,并使用 <FormLabel> 作为标签。
<FormControl> 组件直接渲染 <input> 或其他指定的组件。如果您需要访问不受控的 <FormControl> 的值,请像对待不受控的输入一样,将 ref 附加到它,然后调用 ReactDOM.findDOMNode(ref) 来获取 DOM 节点。然后,您可以像对待任何其他不受控的输入一样与该节点进行交互。
如果您的应用程序包含大量表单组,我们建议构建一个更高层的组件来封装一个完整的字段组,该组件渲染标签、控件以及任何其他必要的组件。我们没有提供开箱即用的解决方案,因为这些字段组的构成对于单个应用程序来说过于特定,无法提供一个通用的解决方案。
禁用表单
在输入框上添加 disabled 布尔属性以阻止用户交互并使其显示为浅色。
将 disabled 属性添加到 <fieldset> 中以禁用其中的所有控件。
浏览器将 <fieldset disabled> 内的所有原生表单控件(<input>、<select> 和 <button> 元素)视为禁用,阻止键盘和鼠标对其进行交互。
但是,如果您的表单还包含自定义按钮式元素,例如 <a ... class="btn btn-*">,这些元素只会获得 pointer-events: none 的样式,这意味着它们仍然可以使用键盘进行聚焦和操作。在这种情况下,您必须手动修改这些控件,添加 tabindex="-1" 以防止它们获得焦点,并添加 aria-disabled="disabled" 以向辅助技术发出其状态信号。