我有一个看起来像这样的网页
<html>
<head>
<title>File Upload Click Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
</head>
<body>
<div onclick="$('input[type=file]').click()" >CLICK SIMULATOR</div>
<input type="file"></input>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的目标是让div在文件输入上引发点击事件,这似乎与我在IE和Chrome中所期望的完全一样,但在Firefox中不起作用(当你点击时没有打开文件浏览器div).
有没有办法让这个在FF工作?
我试图模仿AngularJS中的文件输入上的单击事件.我见过工作jQuery示例,但我不想使用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);
};
});Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
注意:由于某种原因,需要按两次按钮才能触发超时功能.
我正在使用setTimeout因为这篇文章.
如何使用AngularJS/vanilla JavaScript以编程方式单击文件输入?
我已经知道如何使用dat.GUI创建按钮(按本问题所述传递函数:是否可以使用dat.gui创建按钮)。我想制作一个触发加载文件事件的按钮,就像您可能会这样做<input type="file" id="file" name="file" enctype="multipart/form-data" />
吗?
我想只通过jquery调用文件输入的click事件,但是当我使用下面的代码时,它不起作用:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="js/jquery.js"></script>
<script>
$(function () {
setTimeout(function () {
$('#file').trigger('click');
}, 2000);
});
</script>
</head>
<body>
<input id="file" name="file" type="file" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
注意
我想只用jquery或javascript做这个.
html ×5
javascript ×4
jquery ×2
angularjs ×1
css ×1
dat.gui ×1
file-io ×1
file-upload ×1
input ×1