1
$('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));
    }
});

导致它不起作用的错误在哪里?

4

1 回答 1

3

我不相信这strtolower()是一个Javascript函数。尝试string.toLowerCase()

var cext = ext.toLowerCase();

Live sample

文档https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/toLowerCase

于 2013-04-26T19:58:04.073 回答