我制作了用于检查图像的功能。提交前的大小。它的工作没有错误,但我发现如果图像只包含一个图像是正确的大小允许上传图像。发生这种情况是因为布尔值不正确。我知道如何以肮脏的方式检测到这一点 我知道我的代码很笨,但你们可以检查我的代码吗?
function check_scr_img_size() {
var img_size;
var ss = $('.tmp_screenshot').length;
console.log("업로드할 스크린샷 갯수 : "+ ss);
var scr = [];
for (var i = 0 ; i < ss ; i ++) {
console.log("check_scr_img_size");
scr[i] = document.getElementById('tmp_scr'+i);
console.log(scr[i].naturalWidth + " , " + scr[i].naturalHeight);
if(scr[i].naturalWidth == 1440 && scr[i].naturalHeight == 810) {
img_size = true;
}else {
img_size = false;
}
}
if (img_size) {
console.log("check_scr_img_size : true");
return true;
}else {
console.log("check_scr_img_size : false");
if (lang == "ko") {
popup("스크린샷 이미지를 확인해 주세요. (사이즈 : 1440 X 810");
}else {
popup("Please check your screenshots images (size : 1440 X 810");
}
return false;
}
}
我该如何解决这个问题?请让我知道我可以更清洁和优化我的代码的方式。
我试过了,日志是这样的。
스크린샷 존재
업로드할 스크린샷 존재
업로드할 스크린샷 갯수 : 2 // The 2files have to be uploaded.
check_scr_img_size
518, 346 // The first image size
check_scr_img_size
1440, 810 // The second image size
check_scr_img_size : true // It turns to true
스크린샷 존재 && 업로드할 스크린샷 존재 && 업로드할 스크린샷 사이즈 일치
如果最后一张图片为真,则只更改bool。
我改变了你所说的代码。
function check_scr_img_size() {
var img_size=true;
var ss = $('.tmp_screenshot').length;
console.log("업로드할 스크린샷 갯수 : "+ ss);
var scr = [];
for (var i = 0 ; i < ss ; i ++) {
console.log("check_scr_img_size ");
scr[i] = document.getElementById('tmp_scr'+i);
console.log(scr[i].naturalWidth + " , " + scr[i].naturalHeight);
if(!scr[i].naturalWidth == 1440 && !scr[i].naturalHeight == 810) {
//img_size = true;
//}else {
img_size = false;
}
}
if (img_size) {
console.log("check_scr_img_size : true");
return true;
}else {
console.log("check_scr_img_size : false");
if (lang == "ko") {
popup("스크린샷 이미지를 확인해 주세요. (사이즈 : 1440 X 810");
}else {
popup("Please check your screenshots images (size : 1440 X 810");
}
return false;
}
}
谢谢你的运作正常。我将(!scr[i].naturaWidth == 1440 && !scr[i].naturalHeight == 810)
更改为scr[i].naturalWidth != 1440 && scr[i].naturalHeight != 810
,并在break;
之后添加了img_size = false;
。我非常感谢你的帮助: - )
答案 0 :(得分:3)
只需将img_size
设置为true
即可。而是使用img_size
初始化true
:
var img_size = true;
// in your loop:
// ...
if(scr[i].naturalWidth != 1440 && scr[i].naturalHeight != 810) {
img_size = false;
}
因此,如果收到一些不良图像,您将始终获得false
。
答案 1 :(得分:1)
你可以试试这个:
function check_scr_img_size() {
var img_size = true,
ss = $('.tmp_screenshot').length,
scr = [];
console.log("업로드할 스크린샷 갯수 : " + ss);
for (var i = 0; i < ss; i++) {
if (img_size === true) {
console.log("check_scr_img_size");
scr[i] = document.getElementById('tmp_scr' + i);
console.log(scr[i].naturalWidth + " , " + scr[i].naturalHeight);
if (scr[i].naturalWidth != 1440 || scr[i].naturalHeight != 810) {
img_size = false;
}
}
}
if (img_size) {
console.log("check_scr_img_size : true");
return true;
} else {
console.log("check_scr_img_size : false");
if (lang == "ko") {
popup("스크린샷 이미지를 확인해 주세요. (사이즈 : 1440 X 810");
} else {
popup("Please check your screenshots images (size : 1440 X 810");
}
return false;
}
}