gpt4 book ai didi

javascript - 在 reactJS 中验证复选框的简单函数

转载 作者:可可西里 更新时间:2023-11-01 02:25:53 26 4
gpt4 key购买 nike

我做了一个选择限制功能,确保总复选框高于最小值和低于最大值,这些值取自复选框映射的 JSON,现在选择限制有效,但我正在尝试添加验证以使用 onblur 显示警告,但我不确定如何将相同的函数转换为 onblur 验证函数。例如,如果有人取消选中,它会在控制台上显示您需要至少选择 3 个,直到选中 3 个,这与 selectData() 的逻辑相同。

函数

  selectData(id, event) {
let isSelected = event.currentTarget.checked;
if (isSelected) {
if (this.state.currentData < this.props.max) {
this.setState({ currentData: this.state.currentData + 1 });
} else {
event.preventDefault();
event.currentTarget.checked = false;
}
} else {
if (this.state.currentData >= this.props.min) {
this.setState({ currentData: this.state.currentData - 1 });
} else {
event.preventDefault();
event.currentTarget.checked = true;
}
}
}

完整代码:https://codesandbox.io/embed/48o2jo2500?fontsize=14

最佳答案

您的一般方法似乎应该可行,只需要实际实现错误状态的技巧。不过这里的建议是更新您的 !isSelected && this.state.currentData < this.props.min允许选择少于三个但向用户显示错误状态的条件。

  ...
} else {
if (this.state.currentData >= this.props.min) {
// this.setState({ currentData: this.state.currentData - 1 });
// UPDATE:
this.setState((state) => ({ currentData: state.currentData - 1 }));
} else {
event.preventDefault();
// Don't force the box to be selected, show error state instead
// Disable calls to filtering, sorting, etc. until error resolved
// event.currentTarget.checked = true;
}
}
}

基本实现:

关于javascript - 在 reactJS 中验证复选框的简单函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55151822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com