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 に答える