onchange jquery验证文件类型

时间:2014-11-21 06:04:13

标签: javascript jquery validation

这是我的Fiddle

我所拥有的是在onchange事件中显示上传文本附近的图像名称。

这里我需要在onchange上进行验证,它应该显示错误以及文件名

这是我尝试过的。

Upload<input type="file" onchange=" document.getElementById('spanFileName').innerHTML = this.value;" style="display:block;margin-top: -20px;opacity: 0;" >

注意:

我不想通过设置规则单独进行验证,我想在onc​​hange中进行验证,但如果我在输入类型文件代码中有脚本就可以了

更新:如果我要显示文件名并在5秒内隐藏会更好,因为我不知道在输入类型文件代码中编写脚本

我该怎么做,请帮助

2 个答案:

答案 0 :(得分:1)

<!doctype html>
<html lang="en">    
<head>
  <meta charset="utf-8">
  <title>Validation</title>
  <script src="http://code.jquery.com/jquery-1.10.2.js"></script>  
  <style type="text/css">
  label input[type="file"] 
{
display: block;
margin-top: -20px;
opacity: 0;
}
  </style>
  <script>
   $(window).ready(function() {
$(document).delegate('#Upload','change',function(){
  var s=$(this).val();
  function stringEndsWithValidExtension(stringToCheck, acceptableExtensionsArray, required) {
    if (required == false && stringToCheck.length == 0) { return true; }
    for (var i = 0; i < acceptableExtensionsArray.length; i++) {
        if (stringToCheck.toLowerCase().endsWith(acceptableExtensionsArray[i].toLowerCase())) { return true; }
    }
    return false;
}
$('#spanFileName').html(s);
setTimeout(function(){

  $('#spanFileName').html("");
},15000)

String.prototype.startsWith = function (str) { return (this.match("^" + str) == str) }

String.prototype.endsWith = function (str) { return (this.match(str + "$") == str) }
  alert(s);
   if (!stringEndsWithValidExtension($("[id*='Upload']").val(), [".png", ".jpeg", ".jpg", ".bmp"], false)) {
        alert("Photo only allows file types of PNG, JPG and BMP.");
        return false;
    }
    return true;
});
});

  </script>
</head>
<body>
Upload<input id='Upload' type="file" style="display:block;margin-top: -20px;opacity: 0;" >

<span id='spanFileName'></span>
</body>
</html>

答案 1 :(得分:1)

使用JQuery解决方案非常简单

将您的HTML设为

Upload<input type="file" id="fileUpload" style="display:block;margin-top: -20px;opacity: 0;" >

<span id='spanFileName'></span>

然后使用Jquery

$('#fileUpload').on("change",function () {

                var fileExtension = ['jpeg', 'jpg'];
                if ($.inArray($(this).val().split('.').pop().toLowerCase(), fileExtension) == -1) {
                    // alert("Only '.jpeg','.jpg' formats are allowed.");
                    $('#spanFileName').html(this.value);
                    $('#spanFileName').html("Only '.jpeg','.jpg' formats are allowed.");
                }
                else {
                    $('#spanFileName').html(this.value);
                   //do what ever you want
                } 
 }) 

这是工作样本http://jsfiddle.net/c9sbmdv5/3/