在 reactjs 中以编程方式取消选中复选框

IT技术 javascript reactjs checkbox
2021-05-26 03:21:02

我弄乱了复选框,我想知道有没有一种方法可以通过调用函数来取消选中一个按钮时的复选框?如果是这样?我怎样才能做到这一点?

<input type="checkbox" className="checkbox"/>
<button onClick={()=>this.unCheck()}

如何以编程方式取消选中复选框,以及如果我使用 map 函数动态生成多个复选框,该怎么办。如果我愿意,如何取消选中它们?

4个回答

有复选框的属性,checked您可以使用它来切换复选框的状态。

可能的方法:

1-您可以使用ref复选框和onClick按钮,通过使用ref您可以取消选中该框。

2-您可以使用受控元素,这意味着将复选框的状态存储在state变量中并在单击按钮时更新该状态。

使用 ref检查此示例ref为每个复选框分配一个唯一值,然后在 onClick 函数中传递该项目的索引,使用该索引切换特定checkBox

检查这个受控元素的例子,意味着将state复选框of存储state变量中,然后单击按钮更改其值:

react

已检查

  1. 使用状态
     <input type="radio" name="count" value="minus" onChange={this.handleRadioChange} checked={this.state.operation == "minus"} /> Decrement

2.使用参考

<input type="radio" name="count" ref="minus" /> Decrement
onSubmit(e){ this.refs.minus.checked = false }

使用普通的 javascript 你可以实现如下。

 function unCheck() {
   var x = document.getElementsByClassName("checkbox");
   for(i=0; i<=x.length; i++) {
      x[i].checked = false;
    }   
 }

小DEMO

我在想这样的事情:

<input onChange={(input) => this.onFilterChange(input)} className="form-check-input" type="checkbox" />

onFilterChange = (input) => { let { value, checked } = input.target;}

unCkeckAll = () => {
    [...document.querySelectorAll('.form-check-input')].map((input) => {
        if (input.checked) {
            let fakeInput = {
                target: {
                    value: input.value,
                    checked: false
                }
            }
            input.checked = !input.checked;
            this.onFilterChange(fakeInput);
        }
        return null;
    })
}