使用jQuery

时间:2015-09-07 06:55:14

标签: jquery

我制作了用于检查图像的功能。提交前的大小。它的工作没有错误,但我发现如果图像只包含一个图像是正确的大小允许上传图像。发生这种情况是因为布尔值不正确。我知道如何以肮脏的方式检测到这一点 我知道我的代码很笨,但你们可以检查我的代码吗?

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;。我非常感谢你的帮助: - )

2 个答案:

答案 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;
    }
}