如何使用Angularjs在Internet Explorer中上载文件后清除文件名

时间:2014-05-14 10:14:29

标签: javascript css html5 angularjs

<input type="file" ng-model="myobj.file" ng-file-select="onFileSelect_filter($files)" id="fileButton" >
<button type="button" ng-click="start_Filter();" >Upload</button>

我的onFileSelect_filter()函数就像这样,

$scope.onFileSelect_filter = function($files){
   ....
};

我想在至少点击Internet Explorer中的上传按钮后清除文件名。

此输入框不在表单内 提前谢谢...... !!!

4 个答案:

答案 0 :(得分:1)

不幸的是,在这种情况下,将绑定的$scope变量等同为空字符串或null将不起作用。

虽然你可以通过下面提到的方式之一来实现它。

方法1

你必须逐字地替换DOM上的html(在你的情况下上传)并将其恢复到上传之前的状态。像这样......

 $scope.start_Filter = function(){
   // This is in the upload function post all your logic
   $("#fileButton").replaceWith("<input type='file' ng-model='myobj.file' ng-file-select='onFileSelect_filter($files)' id='fileButton' >").html();
};

注意:必须对replaceWith函数中的所有HTML属性值使用单引号而不是双引号

方法2

或者,您可以使用JQuery轻松清除文件名。像这样......

$scope.start_Filter = function(){
   // This is in the upload function post all your logic
   $("#fileButton").val('');
};

其中一个应该有用。如果你遇到任何麻烦,请试试看,告诉我。

答案 1 :(得分:1)

最简单的方法是:angular.element("input[type='file']").val(null);

答案 2 :(得分:0)

在您的控制器中,文件上传完成后更改myobj.file value.

$scope.myobj.file = ''

答案 3 :(得分:0)

尝试清除 $ scope.myobj var

$scope.onFileSelect_filter = function($files){
    $scope.myobj.file = undefined;
};