Javascript JQuery随机停止工作(.size())

Javascript JQuery随机停止工作(.size()),javascript,jquery,html,size,Javascript,Jquery,Html,Size,所以我制作了一个表单,并试图在处理它之前用javascript验证它。其他领域的工作都很好。这就是表单的外观 <form name="game_sub" action="add_game.php" onsubmit="return gameVal()" method="post"> <table> <tr><td><input type="text" name="name" class="game_n

所以我制作了一个表单,并试图在处理它之前用javascript验证它。其他领域的工作都很好。这就是表单的外观

<form name="game_sub" action="add_game.php" onsubmit="return gameVal()" method="post">
        <table>

            <tr><td><input type="text" name="name" class="game_name" placeholder="NAME" /></td></tr>
            <tr><td>
            <select name="keyword" >
                <option value="action">Action</option>
                <option value="platform">Platform</option>
                <option value="sport">Sport</option>
                <option value="shooter">Shooter</option>
            </select>
            </td></tr>
            <tr><td><label>Game: </label><input type="file" name="game_file" id="g_file"></td></tr>
            <tr><td><label>Thumbnail: </label><input type="file" name="game_thumb" id="t_file"></td></tr>
            <tr><td><textarea name="desc" placeholder="DESCRIPTION"></textarea></td></tr>
        </table>
        <a href="index.php"><button type="button" id="add_btn_lft" class="add_btn">CANCEL</button></a>
        <input type="submit" value="SUBMIT" id="add_btn_rgt" class="add_btn"/>
整个剧本又复活了。我使用jQuery中的.size来获取文件的大小(以比特为单位),它工作了一段时间,但我不知道发生了什么。。。它只是随机决定不工作。javascript在其中执行jQuery是否有问题?我以前做过,没有问题,但这很奇怪

以下是我的.js文件的外观:

function gameVal() {

  var GName = document.forms.game_sub.name.value;
  var GCat = document.forms.game_sub.keyword.value;
  var GFile = document.forms.game_sub.game_file.value;
  var GThumb = document.forms.game_sub.game_thumb.value;
  var Tarea = document.forms.game_sub.desc.value;
  var BErr = document.getElementById("add_game_err");
  var GFile2 = GFile.split(".");
  var GThumb2 = GThumb.split(".");
  var imgExt = ["jpg", "jiff", "jpeg", "gif", "tiff"];
  var gameExt = ["swf", "unity3d"];

  if (window.File && window.FileReader && window.FileList && window.Blob) {

  if (GFile == "" || GThumb == "" || GName == "" || GName == null || GCat == "Category" || Tarea == "") {
    BErr.style.display = "block";
    BErr.innerHTML = "Please fill in all the fields.";
    return false;
  }
  else if (GFile2.length > 2) {
    BErr.style.display = "block";
    BErr.innerHTML = "Please make sure the game file name has no periods(.) within it.";
    return false;
  }
  else if (GThumb2.length > 2) {
    BErr.style.display = "block";
    BErr.innerHTML = "Please make sure the thumbnail file name has no periods(.) within it.";
    return false;
  }
  else if (imgExt.indexOf(GThumb2[1]) == -1) {
    BErr.style.display = "block";
    BErr.innerHTML = "Thumbnail file format is invalid. (Only JPG, JIFF, JPEG, GIF, TIFF are allowed.)";
    return false;

  }
  else if (gameExt.indexOf(GFile2[1]) == -1) {
        BErr.style.display = "block";
        BErr.innerHTML = "Game file format is invalid.";
        return false;
  }
  else {
  var TSize = document.forms.game_sub.game_thumb.form[0].size;
  if (TSize > 1000000) {
    BErr.style.display = "block";
    BErr.innerHTML = "Thumbnail is too big. (Max size: 1MB)";
    return false;
  }
  else {
    BErr.style.display = "block";
    BErr.innerHTML = "Error";
    return false;
  }
  }
}
else {
    BErr.style.display = "block";
    BErr.innerHTML = "Your browser is outdated and cannot support file upload. Please update to latest version.";
    return false;

}
}

我在我的本地主机服务器和jsbin.com上测试了它,它成功了。但奇怪的是,随着时间的推移,它不知何故停止了工作。这已经发生过两次了。我昨晚做的,今天早上打开,同样的事情发生了。我修好了。然后今天下午,再次看了一遍,同样的事情…

代码没有做任何接近您所想的事情,并且代码中没有jQuery

input
元素的
form
属性返回它所在的表单,因此
document.forms.game\u sub.game\u thumb.form
返回与
document.forms.game\u sub
相同的值

在窗体上使用
[0]
获取窗体中的第一个字段,即名称输入字段,并在窗体上使用
.size
从名称输入字段中读取属性
size

size
属性用于指定
输入的宽度(以字符为单位)

我认为您正在寻找
文件
属性:

var TSize = document.forms.game_sub.game_thumb.files[0].size;

在第二个last else语句中,我将TSize的变量放在其中,以便最后执行它,就像将它与其余变量放在顶部一样。它允许执行开始部分,但一旦它到达else语句,它就会完全跳过if
(TSize>1000000)
,转到else(我将其留空,但在它停止工作后只添加了
BErr.innerHTML=“Error”
),以查看它是否会被执行。)哇。它能用,谢谢。我的错误。由于某种原因,我被误导了b/c,它第一次起作用了。不知道为什么。
var TSize = document.forms.game_sub.game_thumb.files[0].size;