javascript - 禁用 React Js 中的某个元素

标签 javascript reactjs

我是 React Js 的新手,我想根据条件设置禁用某些元素

我的表单中有三个元素,一个选择,两个输入

根据所选项目,必须禁用输入之一

这是我的组件代码:

class AddUser extends React.Component {

constructor(props) {
super(props);

this.state = {
user: {
}

};

}

render() {
    if (this.props.user) {
        this.state.user= this.props.user;
    }    

return (

        <div className="form-group">
            <label className="control-label">type<span className="symbol required"></span></label>
            <select className="form-control" name="CompanyMeetingType" value={this.state.user.type>
                <option value="1"> type1</option>
                <option value="2">type2</option>
                <option value="3">both</option>
            </select>
        </div>

        <div className="form-group">
            <label className="control-label">type1(%)<span className="symbol required"></span></label>
            <input required type="text" name="type1" className="form-control" disabled={this.state.user.type ==2} />
        </div>

        <div className="form-group">
            <label className="control-label">type1(%)<span className="symbol required"></span></label>
            <input required type="text" name="type2" className="form-control" disabled={this.state.user.type ==1} />
        </div>
)

}

当我更改所选项目时,禁用功能正常工作,但当我在编辑模式下归档选择元素时,禁用功能不起作用

最佳答案

class Application extends React.Component {
constructor(props) {
    super(props);
    this.state = {
        value: '1'
    }
    this.handleSelect = this.handleSelect.bind(this);
}
handleSelect(e) {
    console.log('enter');
    this.setState({
        value: e.target.value
    })
}
render() {
    console.log(this.state.value)
    return ( 
      <div >
        <select value = { this.state.value} onChange = {this.handleSelect} >
         <option value = "" >select value </option>
         <option value = "1" >value 1 </option>
         <option value = "2" >value 2 </option>
         <option value = "3" >both </option>
         </select> 
         <br / >
        <hr / >
        <input type = "text" disabled = {this.state.value == 1 || this.state.value == 3 }/>
        < br / > < br / >
        < input type = "text" disabled = { this.state.value == 2 || this.state.value == 3 }/> 
      < /div>
     );
    }
  }
React.render( < Application / > , document.getElementById('app'))

您唯一缺少的是handleSelect 函数,它处理选择值事件并设置状态。它按照你想要的方式完美工作。如果您想预先默认禁用任何输入标记,则只需在状态中传递该值,以便当组件呈现该标记时将被禁用。

关于javascript - 禁用 React Js 中的某个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50432284/

相关文章:

javascript - React router 2.6.0 如何在点击函数内重定向

javascript - 将数据传递回异步请求的调用函数

javascript - c3.js TypeError : b. 值未定义

javascript - 自动更改图像特定时间段

javascript - 尝试映射时,对象作为 React 子对象无效

reactjs - Google 跟踪代码管理器导致 SPA 中的整个页面重新加载 - React

javascript - 带有切换按钮的 jQuery 幻灯片动画 div 每隔一段时间而不是每次都工作

javascript - 当 AngularJs 中数字输入非法时,为什么绑定(bind)到 null 不起作用

javascript - 构建适用于 IE7 的垂直嵌套 CSS 菜单

javascript - 将 (this.state) 类型变量直接插入 JSX