$('INPUT[type="file"]').change(function () {
var ext = this.value.match(/\.(.+)$/)[1];
var control = $("#uploaded_file");
switch (ext) {
case 'doc':
case 'docx':
case 'pdf':
case 'wps':
case 'rtf':
case 'txt':
case 'xps':
$('#uploadButton').attr('disabled', false);
break;
default:
alert('\'' + ext + '\' is not an allowed file type.\n\nPlease select the correct file type:\n\n\t.DOC, .DOCX, .PDF, .WPS, .RTF, .TXT, .XPS');
$('#uploadButton').attr('disabled', true);
control.replaceWith(control = control.val('').clone(true));
}
});
现在我遇到的问题是,如果用户选择的文件带有“ .TXT”,由于TXT与txt不相同,它将引发异常错误,因此我尝试使用strtolower函数。但是,当我使用它时,脚本本身不起作用。
带有strtolower的修改后的脚本不起作用:
$('INPUT[type="file"]').change(function () {
var ext = this.value.match(/\.(.+)$/)[1];
var cext = strtolower(ext);
var control = $("#uploaded_file");
switch (cext) {
case 'doc':
case 'docx':
case 'pdf':
case 'wps':
case 'rtf':
case 'txt':
case 'xps':
$('#uploadButton').attr('disabled', false);
break;
default:
alert('\'' + cext + '\' is not an allowed file type.\n\nPlease select the correct file type:\n\n\t.DOC, .DOCX, .PDF, .WPS, .RTF, .TXT, .XPS');
$('#uploadButton').attr('disabled', true);
control.replaceWith(control = control.val('').clone(true));
}
});
错误在哪里导致其不起作用?
最佳答案
我不相信strtolower()
是Javascript函数。尝试string.toLowerCase()
var cext = ext.toLowerCase();
Live sample
文档:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLowerCase