【发布时间】:2016-03-14 01:21:38
【问题描述】:
您好,我为单个字段表单找到了答案...但是如果我们有一个包含多个字段的表单怎么办?
如果您有 1 个字段,这可以禁用它,但是当您想基于多个字段禁用它时它不起作用:
getInitialState() {
return {email: ''}
},
handleChange(e) {
this.setState({email: e.target.value})
},
render() {
return <div>
<input name="email" value={this.state.email} onChange={this.handleChange}/>
<button type="button" disabled={!this.state.email}>Button</button>
</div>
}
})
【问题讨论】:
-
我不知道 React,但我猜你可以在状态对象中添加一个
isSubmitAllowed并在按钮的disabled属性中引用它。然后isSubmitAllowed将实现您需要的任何逻辑来测试表单是否完整。 -
完全取决于有问题的具体形式。没有什么能阻止你为每个按钮设置一个标志。
-
IMO 最简单和最可靠的方法是在渲染方法中计算它。为清楚起见,您可以计算例如
const canSubmit = ...在return语句之前的单独行中,并将disabled={!canSubmit}设置为按钮的道具。
标签: javascript reactjs