error: function (xhr) {
$.each(xhr.responseJSON.errors, function(key) {
console.log(xhr.responseJSON.errors);
return key<2;
});
},
上面的函数向我返回以下结果:
并且我输入的字段具有相同的名字civil_no efirst和esecond
如果字段名称在json响应中,我想将输入边框变成红色。
我尝试了以下类似操作,但是它不起作用。
error: function (xhr) {
var arr = [ "efirst", "esecond", "civil_no"];
$.each(xhr.responseJSON.errors, function(key,value,i) {
if(xhr.responseJSON.errors=arr[i]){
$( "input[name=" arr[i]]).removeClass('border border-dark');
$( "input[name=" arr[i] ).addClass('errorClass');
return key<1;
}
});
},
console.log(key); //返回efirst,esecond,civil_no
答案 0 :(得分:2)
如果您想从比较数组中获得布尔结果,则可以使用“某些”函数。
此外,您还可以使用反引号来提高可读性。
<div class="col-md-8 col-lg-6 col-xl-5 mx-auto">
<h4 class="font-weight-light my-1">{{commDetails[0].community_displayname}}</h4> <a (click)="communityUpload(commDetails[0]['_id']['$oid'])"><i class="far fa-check-circle mr-2"></i></a>
<a (click)="cle()" ><i class="far fa-times-circle " ></i></a>
<h6 class="font-weight-light my-2 mb-3">@@{{commDetails[0].community_username}}</h6>
</div>
在此处阅读模板文字:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
答案 1 :(得分:2)
另一种查看方法是循环遍历字段名称数组,并查看错误对象中是否存在该属性。
var arr = ["efirst", "esecond", "civil_no"];
$.each(arr, function(i, name) {
if (xhr.responseJSON.errors.hasOwnProperty(name)) {
$("input[name='" + name + "']").addClass('errorClass').removeClass('border border-dark');
}
});
答案 2 :(得分:1)
将“ if”更改为
//if key is an element of arr
if (arr.indexOf(key) !== -1) {...}
//using es6 syntax
if (arr.includes(key)) {...}
在]]
中不加双引号$( "input[name=" arr[i]])
可能是错字。