0

別の JavaScript 関数内でカスタム jquery バリデーターを呼び出す

<input type='file' />通常の JavaScript 関数内で onChange イベントの jQuery カスタム バリデーターを呼び出す方法。イベントをキャプチャし、既に登録されているカスタム バリデータをトリガーする必要があります。その内部には、アップロードしようとした各ファイルに対応する行を含むテーブルが作成されます。この記事を読みましたが、著者が言っていることを検証できません: Version of Custom Validator Calling

前もって感謝します。


サーバーにアップロードするときに、有効なファイル拡張子(現在は画像が主なターゲットです)をチェックします。

$(document).ready(function () {
$('#UploadedFile').live('change', function () {
    //TODO
    alert('Hey hey!');//It works, because the event is captured and calls this line
    return jQuery.validator.methods.extensions.call(null, $(this), null);//Doesn't work for me
 
   //This is for running validation in the client-side      
});

});

jQuery.validator.addMethod("extensions", function (value, element, params) {
var extensionsAllowed = params.extensions;
var pattern = new RegExp(extensionsAllowed);
var elementToValidate = $(element);
var maxUploadSize = Math.floor(5000000 / 1024) / 1024;//converting to Kilobytes

var result = fnCreateUploadDetailsTable(elementToValidate, pattern, maxUploadSize);
return result;

   //It works for server-side Data Annotations validator, 
   //but the request travels over the HTTP connection and I want to avoid overloading the server
   //with this basic function
});

jQuery.validator.unobtrusive.adapters.add("extensions", ["extensions"], function (options) {
options.rules["extensions"] = options.params;
options.messages["extensions"] = options.message;
});
4

0 に答える 0