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

标签 javascript reactjs checkbox ecmascript-6 mapping

我做了一个选择限制功能,确保总复选框高于最小值和低于最大值,这些值取自复选框映射的 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/

相关文章:

javascript - 无法从 req.user 获取用户名以 Express 输出

javascript - 检查嵌套数组中的每个值是真还是假的更好方法?

javascript - jQuery append 后没有图像尺寸

javascript - this.props.dispatch 不是与 redux react 的函数

reactjs - 如何向 Alice-Carousel 添加自定义箭头按钮?

Javascript DIV 保留在任何表格的右上角

javascript - Reactjs 获取身份验证和访问 token ,无法解析响应

php - 在mysql中插入多个复选框

asp.net - 如何在 ASP.Net 的复选框选择中放置交叉检查图像而不是正确检查

Javascript 选择复选框选中计数为 "name"