我在窗体上有2个输入。我正在使用React.js和Twitter Bootstrap。如何使用bootstrap禁用输入反应?
预期的行为是:
当输入键入在在任一形式的输入字段,另一个输入字段应不接受任何输入(或是disabled
)。
我从Bootstrap使用FormControl。
我应该如何在这个React.js/Bootstrap设置中实现这个功能?
我在窗体上有2个输入。我正在使用React.js和Twitter Bootstrap。如何使用bootstrap禁用输入反应?
预期的行为是:
当输入键入在在任一形式的输入字段,另一个输入字段应不接受任何输入(或是disabled
)。
我从Bootstrap使用FormControl。
我应该如何在这个React.js/Bootstrap设置中实现这个功能?
您必须使用disabled
属性并根据需要进行切换。如果我理解正确,你需要类似的东西。
class MyForm extends React.Component{
constructor(){
super();
this.state = {
isFirstDisabled: false,
isSecondDisabled: false
}
}
onFirstFocus(){
this.setState({
isSecondDisabled: true
});
}
onSecondFocus(){
this.setState({
isFirstDisabled: true
});
}
onBlur(){
this.setState({
isFirstDisabled: false,
isSecondDisabled: false
});
}
render(){
return (
<div>
<FormGroup>
<FormControl type="text" onFocus={() => this.onFirstFocus()} onBlur={() => this.onBlur()} disabled={this.state.isFirstDisabled}/>
<FormControl type="text" onFocus={() => this.onSecondFocus()} onBlur={() => this.onBlur()} disabled={this.state.isSecondDisabled}/>
</FormGroup>
</div>
);
}
}
export default MyForm;
谢谢/如果我想在第一个输入有一些信息时取消输入?我有2个输入和按钮,我只能在一个输入中写入信息 –
只需将'onFocus'更改为'onChange'并检查输入值的长度,如果> 0则禁用另一个输入,否则启用。 我已编辑[沙箱](https://codesandbox.io/s/yPBvrOvKg) – Andrew
如果我有2个组件。我首先有方法 handleInputChange = inputId => event => {this.setState({inputId]:event.target.value }); }; 和在第二个组件我有道具this.state.input1和this.state.input2。 在这种情况下如何? –
我有2 FormGroup {this.props.label} ControlLabel> –
你是什么意思的禁用? –
在第一个输入中使用'isDisabled',然后'onKeyDown'秒''true'状态 –