【问题标题】:How to check if selected file aready existed in kendo upload?如何检查剑道上传中是否已存在所选文件?
【发布时间】:2016-02-24 15:55:37
【问题描述】:

我想了解为什么我们使用 -1 检查索引数组值,如果 fileName 已经存在,我会遇到剑道上传 onSelect 的问题,阻止用户加载文件并显示 showErr。当我们处理一个文件时它可以工作,但是当我们选择多个文件并且如果一个文件已经加载它应该显示 showErr 但它没有发生。

main.html

 <div class="row" >
                <div class="form-group col-md-12 fieldHeight" ng-hide="errorUpDoc" >
                    <label for="attachment" class="col-md-4" ng-show="!editDocMode">File name:</label>
                    <div class="col-md-6" ng-show="!editDocMode">
                         <input name="file"
                   type="file"
                   kendo-upload="fileAttachment"
                   k-upload="addMorePostParameters"
                   k-success="onSuccess"
                   k-error = "onError"
                   k-multiple="true"
                   ng-disabled="disableDocFields"
                   k-options="fileAttachmentOptions"
                   k-select="onSelect"
                   k-remove="onUploadRemove"
                   />
                   <p ng-show="showErr" class="text-danger">File name already exists</p>
                    </div>
                </div>
        </div>

main.js

 $scope.onSelect = function (e) {
       // var fileNames = $.map(e.files, function(file) { return file.name; }).join(', ');
        var fileNames = assessmentData.map(function(assessment)
            { return assessment.fileName; });
           e.files.forEach(function (file) {
          if (fileNames.indexOf(file.name) !== -1 || selectedFile.indexOf(file.name) !== -1) {
            e.preventDefault();
            $timeout(function () {
              $scope.showErr= true;
              });
          }
          else {
              $timeout(function () {
                  $scope.showErr = false;
                  });
            }
          });
        for ( var i=0; i < e.files.length; i++){
            if(selectedFile.indexOf(e.files[i].name) === -1){
                selectedFile.push(e.files[i].name);
            }
        }
      };

【问题讨论】:

  • indexOf 如果在数组中未找到项,则返回 -1。
  • 阅读docs 总是有用的。
  • 我不明白否决投票
  • DV 按钮的工具提示说:“这个问题没有显示任何研究工作”,这说明了很多?

标签: javascript angularjs kendo-ui


【解决方案1】:

当数组中不存在元素时,indexOf 返回 -1。

【讨论】:

    【解决方案2】:

    -1 的索引表示该值在数组中没有索引。

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-08
      相关资源
      最近更新 更多