$('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));
}
});
動作しない原因となっているエラーはどこにありますか?