Я должен применить проверку размера файла uplaod
<input type="file" name="UserModel.Resume" id="UserModel.Resume" class="fileSize" data-val="true" data-val-required="The CV field is required." />
и у меня есть функция проверки размера файла,
$('.fileSize').bind('change', function () {
var fileSize = this.files[0].size / 1024 / 1024;
if (fileSize > 3) {
$(this).addClass("input-validation-error");
} else {
$(this).removeClass("input-validation-error");
}
});
Можно ли выполнить валидацию через функцию типа
data-val-function="SomeFunction()" //Some function which return true if valid else false
Я хочу ограничить подачу формы, если размер файла превышает 3 МБ, любая помощь будет полезна.
Учитывая, что у вас есть объект проверки:
var validationFns = {
'customValidator': function() {
// do something
},
'customValidator2()': function() {
// do something
}
}
Затем вы можете добавить атрибут данных для метода, например:
data-val-function="customValidator"
или
data-val-function="customValidator2()"
И используйте следующий код:
$('.fileSize').bind('change', function () {
var $this = $(this);
var validationFn = $this.attr('data-val-function');
if (validationFn && $.isFunction(validationFns[validationFn])) {
if (validationFns[validationFn]()) {
$this.removeClass('input-validation-error');
} else {
$this.addClass('input-validation-error');
}
} else {
var fileSize = this.files[0].size / 1024 / 1024;
if (fileSize > 3) {
$this.addClass('input-validation-error');
} else {
$this.removeClass('input-validation-error');
}
}
});
Попробуйте это http://jsfiddle.net/lotusgodkk/GCu2D/37/
Форма не будет отправлена, если ваш ввод имеет input-validation-error
класса. Вместо этого он выдает сообщение об ошибке.
Javascript:
$(document).ready(function () {
$(document).on('click', '.submit', function () {
var b = $(this);
var form = b.parents('form:first');
if (form.find('.input-validation-error').length) {
alert('error somewhere');
return false;
} else {
//your normal code
}
});
});
HTML:
<form method="post" action="temp">
<input type="file" name="UserModel.Resume" id="UserModel.Resume" class="fileSize input-validation-error" data-val="true" data-val-required="The CV field is required." />
<input type="submit" value="submit" class="submit" />
</form>
Попробуй это:
<input type="submit" onclick="e.perventDefault(); Validate()?this.forms.submit() : alert('Validation Error!')" />