1

Jquery トリガー ('クリック') は、Safari と IE では機能しませんが、Mozilla と chrome では機能します。

私はAngularJSを使用しています。これが私のコードスニペットです

$scope.browseFile = function () {        
    $('.upfile').trigger('click');
    console.log('click','fired browseFile');      

}  

そして、ここにHTMLコードがあります

 <a class="btn-attach pull-left" data-ng-click="browseFile()">Attach <i class="glyphicon glyphicon-paperclip"></i></a><input type="file" name="file" class="upfile" id="upfile" onchange="angular.element(this).scope().uploadFile(this.files)" style="display: none;"/>
4

3 に答える 3

0

もともと https://stackoverflow.com/a/21073094/2149740から

$(event.target).trigger('input').trigger('change').trigger('keydown');

しかし、少なくともIEで動作するはずです

于 2015-10-29T08:35:56.537 に答える
0

それはcssのトリックであり、safariの非表示の要素でイベントを発生させることはできないので、いくつかの変更を加えました. :1px;可視性: 非表示;" そして、すべてのブラウザでの作業

<input type="file" name="file" class="upfile" id="upfile" onchange="angular.element(this).scope().uploadFile(this.files)" style="font-size:1px;opacity:0; height:1px; width:1px;visibility: hidden;">
于 2015-02-02T09:32:18.593 に答える
0

以下のコードを試してください:

$('.upfile')[0].trigger('click');
于 2015-01-29T15:31:50.453 に答える