作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够在选中复选框并执行 onChange 方法后禁用该复选框。
我能够找到一种方法来做到这一点,但是一旦选中多个项目,只有最近选中的复选框被禁用。
disable 方法位于组件类中的 render 方法之前
Disable = id => {
document.getElementById(id).disabled = true;
//another method to execute onchange
};
<span>
<input
type="checkbox"
className="form-check-input"
onChange={this.Disable}
value=""
/>
</span>;
该复选框位于渲染方法内部。用户选中复选框后,该复选框需要自行选中并禁用
最佳答案
一些注意点:
document.getElementById
id
,如果您只需要 id
,请将其作为参数传递 this.handler(id)
演示:
const App = () => {
const [checked, setChecked] = React.useState(false);
const [status, setStatus] = React.useState(true);
const onChangeHandler = () => {
setChecked(!checked);
setStatus(false);
};
return (
<div className="App">
<input
type="checkbox"
value={checked}
disabled={!status}
onChange={onChangeHandler}
/>
</div>
);
};
ReactDOM.render(<App />, document.getElementById("root"));
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.12.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.12.0/umd/react-dom.production.min.js"></script>
关于javascript - 如何在执行 onChange 方法后禁用复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60914254/
我是一名优秀的程序员,十分优秀!