我正在尝试模拟 AngularJS 中文件输入的单击事件。我见过工作 jQuery 示例 http://jsfiddle.net/fEBFp/1/,但我不想使用 jQuery。
'use strict';
angular.module('MyApp', []).
controller('MyCtrl', function($scope) {
$scope.click = function() {
setTimeout(function() {
var element = angular.element(document.getElementById('input'));
element.triggerHandler('click');
$scope.clicked = true;
}, 0);
};
});
<script src="https://code.angularjs.org/1.3.14/angular.js"></script>
<div ng-app="MyApp" ng-controller="MyCtrl">
<input id="input" type="file"/>
<button ng-click="click()">Click me!</button>
<div ng-if="clicked">Clicked</div>
</div>
注意:由于某种原因需要按两次按钮才能触发超时功能。
我在用setTimeout
因为这个帖子 https://stackoverflow.com/a/19519023/1154610.
如何仅使用 AngularJS / vanilla JavaScript 以编程方式单击文件输入?
你可以简单地使用
<button type="button" onclick="document.getElementById('input').click()">Click me!</button>
OR
$scope.click = function() {
setTimeout(function() {
document.getElementById('input').click()
$scope.clicked = true;
}, 0);
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)