0

使用旧版本的 Telerik,我们有一段代码来查找子节点的数量,如下所示

function onUploadSelect(ev) {
var numberOfFiles;
if (ev.target.childNodes[1] != undefined && ev.target.childNodes[1] != null) {
    numberOfFiles = ev.target.childNodes[1].childNodes.length;
}
if ((numberOfFiles + ev.files.length) > 4) { 
//some custom validation error msgs being thrown
}
}

这段代码的基本逻辑是防止上传超过4个文件,例如-我选择2个文件,不要点击上传而是再次选择一个文件然后点击上传,我很好(2+1<4) KEndo Uplaod,ev.target 未定义,你能建议一个可能的替代方案吗?

谢谢阿达什

4

2 回答 2

1

你好这是你想要的

function onSelect(e) {
  var ct = $('#Count').val();
  if (e.files.length > 4) {
   alert("Please select max 4 files.");
   e.preventDefault();
  }
  else {
   ct= parseInt(ct == "" ? 0 : ct);
   $('#Count').val(ct + e.files.length);
  }
}

@Html.Hidden("Count")

限制用户不上传超过 4 个文件。如果我理解正确。

于 2014-04-07T10:42:14.807 回答
1

请尝试使用以下代码片段。

剑道-HTML

<!DOCTYPE html>
<html>
<head> 
<title>Test</title>
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.common.min.css" rel="stylesheet" />
<link href="http://cdn.kendostatic.com/2014.1.318/styles/kendo.default.min.css" rel="stylesheet" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://cdn.kendostatic.com/2014.1.318/js/kendo.all.min.js"></script>
</head>
<body>
<div class="demo-section">
                    <input name="files" id="files" type="file" />
</div>
<script>
                $(document).ready(function() {
                    $("#files").kendoUpload({
                       select: onSelect
                    });
                });

        function onSelect(e) {
                    if (e.files.length > 4) {
               alert("Please select max 4 files.");
               e.preventDefault();
            }
                else {
               var existingfileCount = $(".demo-section li").length;
               if((e.files.length + existingfileCount) > 4)  
               {
                   alert("You can not upload more than 4 files");
                   e.preventDefault();
                   }

                }
                }
</script>
</body>
</html>

剑道-MVC

Javascript

<script>
             function onSelect(e) {
                    if (e.files.length > 4) {
               alert("Please select max 4 files.");
               e.preventDefault();
            }
                else {
               var existingfileCount = $(".demo-section li").length;
               if((e.files.length + existingfileCount) > 4)  
               {
                   alert("You can not upload more than 4 files");
                   e.preventDefault();
                   }

                }
                }
</script>

查看.cshtml

<div class="demo-section">
        @(Html.Kendo().Upload()
            .Name("files")
            .Events(events => events.Select("onSelect"))
        )
</div>

注意:我使用了“demo-section”类来简化代码。如果要重命名此类,请在 html/cshtml 和 javascript 中重命名此类。

让我知道是否有任何问题。

于 2014-04-08T05:12:51.603 回答