0
var $imagefile = $('<input />')
.attr({
type: 'file',
name: 'imageFile',
id: 'imageFile'
});
上面是我创建文件输入的代码。如何在文件输入为空时不显示警报?
下面是一个检查,如果文件格式是一个表行正确的代码:
function validation() {
var marks = parseInt($("#total-weight").text());
var _qid = "";
var _msg = "";
var allowedTypes = ["jpg", "jpeg", "gif", "png"];
var path = $("#imageFile").val();
var ext = path.substring(path.lastIndexOf('.') + 1).toLowerCase();
var alertValidation = "";
// Note, this is just so it's declared...
$("tr.optionAndAnswer").each(function() {
_qid = $("td.qid",this).text();
_msg = "You have errors on Question Number: " + _qid + "\n";
$("#imageFile",this).each(function() {
if ($.inArray(ext, allowedTypes) < 0) {
alertValidation += '\n\u2022 Unsupported file type';
}
if (alertValidation != "") {
return false; //Stop the each loop
}
});
if(alertValidation != ""){
return false;
}
});
if (alertValidation != "") {
alert(_msg + alertValidation);
return false;
}
return true;
}
现在这工作正常通过识别文件类型是正确和不正确。问题是,如果在所有表格行中用户不选择一个文件,那么它提出的警告是不正确的。
我怎样才能得到它,以便它也允许用户不选择文件的空白文件输入?
嗨,只是一个小问题,如果我有两个表行都有一个文件输入,如果我选择第一行的位图文件和第二行的PNG,它实际上不应该显示警报显示第一行的警报,因为它是一个位图,为什么它不显示警报消息呢? – user1182476 2012-02-07 01:41:15
我认为它可能与你使用文件类型选择器的'id'属性有关。每页只能有一个'id',如果你有多个id,后续的'id'会替换DOM中的前一个。所以在你的例子中,第二个文件类型输入**具有**有效的文件类型 - 因此没有警报。这有帮助吗? – daniel0mullins 2012-02-07 02:03:04
我已将#imageFile更改为.imageFile,但仍然是同样的问题。如果第一行是位图,第二行是png,它会显示错误,但是如果它是其他方式,它不显示错误? – user1182476 2012-02-07 02:12:50