简体   繁体   English

显示使用jquery的输入文件上传大小限制的客户端验证消息?

[英]show client validation message for input file upload size limit using jquery?

I am trying validate upload file limit to 2.5 mb max. 我正在尝试将上传文件限制限制为最大2.5 MB。 I need to show validation message on <span class="field-validation-valid" data-valmsg-for="Attachement" data-valmsg-replace="true"></span> when focus lost from the field. 当焦点从字段丢失时,我需要在<span class="field-validation-valid" data-valmsg-for="Attachement" data-valmsg-replace="true"></span>上显示验证消息。

right now I am validating at client side like this. 现在,我正在像这样在客户端进行验证。

 <div class="col-sm-7">
    <input class="form-control" id="Attachement" name="Attachement" type="file" value="">
    <span class="field-validation-valid" data-valmsg-for="Attachement" data-valmsg-replace="true"></span>
  </div>

var attachement = document.getElementById('Attachement');
attachement.onchange = function() {
    var file = attachement.files[0];
    if (file.size > 2621440) {
         //Now Here I need to update <span> 

       alert('Filesize must 2.5mb or below'); // don't want alert message
    }
};

example

<div class="col-sm-7">
  <input class="form-control valid" data-val="true" data-val-required="The First Name field is required." id="FirstName" name="FirstName" placeholder="First Name" required="required" type="text" value="">
  <span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true" style="color:Red"></span>
</div>

after validation 验证后

<div class="col-sm-7">
  <input class="form-control input-validation-error" data-val="true" data-val-required="The First Name field is required." id="FirstName" name="FirstName" placeholder="First Name" required="required" type="text" value="">
  <span class="field-validation-error" data-valmsg-for="FirstName" data-valmsg-replace="true" style="color:Red"><span for="FirstName" class="">
        The First Name field is required.</span>
  </span>
</div>

and also update css class from <input class="form-control"... to <input class="form-control input-validation-error"... to highlight the textbox to red. 并将css类从<input class="form-control"...<input class="form-control input-validation-error"...以将文本框突出显示为红色。

How to do in jquery? 如何在jQuery中做?

I don't know if there's a jQuery equivalent to file.size , but you can simply get the DOM object from the jQuery object with .get() and use the Javascript property. 我不知道是否有一个与file.size等效的jQuery,但是您可以使用.get()从jQuery对象中获取DOM对象并使用Javascript属性。

$("#Attachement").change(function() {
    var file = $(this).get(0);
    if (file.size && file.size > 2621440) {
        $(this).addClass("input-validation-error").siblings(".field_validation-valid").text("File must be smaller than 2.5MB.");
    } else {
        $(this).removeClass("input-validation-error").siblings(".field_validation-valid").empty();
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM