javascript - 输入字段最大值验证服务器响应
问题描述
我有一个在 MongoDB 集群中保存成绩的 React 函数。但是,它会保存任何值,但我只想保存 1 到 10 之间的值,如果值超出此间隔,我想显示警报并且不要在数据库中保存成绩。
这是我的功能:
const saveGrade = async (id, value, idGrade) => {
try {
setLoading(true);
setSuccess(false);
setError("");
let resp = null;
resp = await axios.post(`subjectGrade/create`, {
subjectStudent: id,
partial: semester,
grade: value,
});
if (value <= 10 && value >= 1) { \\here im adding the range i want
if (resp.status === 200) {
setSuccess(true);
const ids = dataUserSubjects.reduce((ids, item) => {
if (item.subject._id === subjectAssigned) ids.push(item._id);
return ids;
}, []);
const getSubjectGrades = async () => {
const gradesSubject = await axios.post(`/subjectGrade/all`, {
ids,
});
setStudentsGrades(gradesSubject.data);
};
await getSubjectGrades();
} else {
setError(resp.data.msg);
}
} else {
alert("NOT OK"); \\here i display an alert, but value is still saved in database
}
} catch (err) {
setError(err.message);
}
setLoading(false);
};
解决方案
不清楚 axios.post( subjectGrade/create
) 做了什么,但我认为你应该在 if 语句中嵌套这段代码:
if (value <= 10 && value >= 1){
let resp = null;
resp = await axios.post(`subjectGrade/create`, {
subjectStudent: id,
partial: semester,
grade: value,
});
if (resp.status === 200) {
...
如果没有,请提供更多详细信息。
推荐阅读
- camera - 从世界坐标到相机坐标
- php - 使用 php 从 Debian 容器到 IBMi 服务器调用 db2 存储过程时无法获取下一个结果集
- java - 如何使这个 Java 返回命令运行?
- reactjs - react-onsenui中如何使用LazyList组件显示动态数据?
- python - 设置 Postgres celery result_backend 时气流调度程序崩溃
- node.js - Mongodb查找具有组合结果的元素数组
- java - java.io.IOException:流已关闭访问 jar 文件夹之外的配置文件
- java - 我的第一个程序无法按预期运行。当我放入所有变量时,它在正确使用时直接进入 else 语句
- r - 如何按组变异?
- html - 如何使用 HTML 和 CSS 绘制图像?