我收到了 API 服务器响应,其中错误部分如下所示:
"errors": {
"username": [
"The username field is required."
],
"password": [
"The password field is required.",
"The password is too short."
]
}
要显示单个错误,我会手动执行以下操作:alert(results.body.errors.username);
。
我需要做的是映射错误对象(如果存在)并仅警告第一个项目的错误。
因此,根据上述 API 响应,第一个警报应该是用户名字段是必填的。
一旦用户更正,假设用户尚未触摸密码字段并重新提交,他们将收到另一个包含错误的 API 响应,因此下一个警报错误应该是 密码字段是必需的。
最后,一旦他们输入单个字符并重新提交,下一个警报应该是密码太短。
此后不再有警报,因为没有更多错误可显示。
知道如何让它发挥作用吗?
最佳答案
考虑到这是响应:
var response = {
"errors": {
"username": [
"The username field is required."
],
"password": [
"The password field is required.",
"The password is too short."
]
}
}
这样就可以了
alert(response.errors[Object.keys(response.errors)[0]][0])
在您的情况下,将 response
替换为 results.body
演示 1: 用户名字段是必需的。
var response = {
"errors": {
"username": [
"The username field is required."
],
"password": [
"The password field is required.",
"The password is too short."
]
}
}
alert(response.errors[Object.keys(response.errors)[0]][0]);
演示2: 密码字段是必需的。
var response = {
"errors": {
"password": [
"The password field is required.",
"The password is too short."
]
}
}
alert(response.errors[Object.keys(response.errors)[0]][0]);
演示3: 密码太短。
var response = {
"errors": {
"password": [
"The password is too short."
]
}
}
alert(response.errors[Object.keys(response.errors)[0]][0]);
关于Javascript - 警告对象数组中的第一项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273748/