Javascript 单击按钮删除所有禁用的属性

Javascript 单击按钮删除所有禁用的属性,javascript,reactjs,typescript,forms,attributes,Javascript,Reactjs,Typescript,Forms,Attributes,我有一个大约有30个字段的表单。有些是输入数字字段,有些是输入文本字段,有些是文本区域,有些甚至使用货币组件字段。以下是一些字段示例: <NumberFormat value={this.state.tax} displayType={'input'} isNumericString={true} thousandSeparator={true} decimalScale={2} prefix={'$'} className=&quo

我有一个大约有30个字段的表单。有些是输入数字字段,有些是输入文本字段,有些是文本区域,有些甚至使用货币组件字段。以下是一些字段示例:

<NumberFormat
    value={this.state.tax}
    displayType={'input'}
    isNumericString={true}
    thousandSeparator={true}
    decimalScale={2}
    prefix={'$'}
    className="phone validate"
    name="Sales Tax"
    disabled                                        
/>  

<div className={`${styles.singleField} ${styles.smallField}`}>
    <label>
        Options
    </label>
    <select name="OptionList" value={this.state.OptionList} className="phone validate" disabled> 
        <option value="One">One</option>
        <option value="Two">Two</option>
        <option value="Three">Three</option>                        
    </select>
</div>

<div className={`${styles.singleField} ${styles.largeField}`}>
    <label>
        Product
    </label>
    <input
        value={this.state.product}
        type="text"
        className="phone validate"
        name="Detailed Description"
        maxLength={45}
        disabled
    />
</div>

为此,您将需要使用React的状态管理。我不确定这是在类组件还是函数组件内部,但下面是如何实现所需的

此外,我建议阅读React文档中的内容

类组件:

class YourComponent扩展了React.Component{
建造师(道具){
超级(道具)
此.state={
inputsDisabled:真
}
}
render(){
返回(
…你的代码在这里
this.setState({inputsDisabled:false}}>单击我
)
}
}
功能组件:

const YourComponent = () => {
  const [inputsDisabled, setInputsDisabled] = React.useState(false)
    return (
      ...yourcodehere
      <button onClick={() => this.setState({ inputsDisabled: false })}>Click Me</button>
      <input disabled={inputsDisabled} />
    )
  }
}
constyourcomponent=()=>{
常量[inputsDisabled,setInputsDisabled]=React.useState(false)
返回(
…你的代码在这里
this.setState({inputsDisabled:false}}>单击我
)
}
}

我建议您通过禁用变量的状态来控制它:true,并绑定到表单的所有元素,当您单击按钮时,将状态更新为false。这对你来说应该很好@你能再解释一下吗?所以像这样有一个
isDisabled={false}
或者?声明一个状态变量:this.state={disabled:true},然后绑定到表单元素,如。单击后,绑定处理程序:并在方法中更新状态:clickHandler(){this.setState({disabled:false}})
class YourComponent extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      inputsDisabled: true
    }
  }
  render() {
    return (
      ...yourcodehere
      <button onClick={() => this.setState({ inputsDisabled: false })}>Click Me</button>
      <input disabled={this.state.inputsDisabled} />
    )
  }
}
const YourComponent = () => {
  const [inputsDisabled, setInputsDisabled] = React.useState(false)
    return (
      ...yourcodehere
      <button onClick={() => this.setState({ inputsDisabled: false })}>Click Me</button>
      <input disabled={inputsDisabled} />
    )
  }
}