2017-09-20 21 views
0

私のサイトでは、現在、カスタムファイルの入力の隣に、.invisible-file-inputの隠しファイル入力を使用しています。カスタムアップロードボタンは、デスクトップでは動作しますがモバイルでは動作しません。

私は私のサイトを通じて以下があります。ボタンをクリックすると

Javascriptを

$('.call-upload').click(function() { 
     $(this).siblings('.invisible-file-input').click(); 
}); 

CSS

.invisible-file-input { 
    position: fixed; 
    top: -200vh; 
} 

HTML

<input class="invisible-file-input" name="document" type="file"> 

<button class="btn btn-primary btn-block call-upload" type="button"> 
    Upload Document 
</button> 

それは単にファイルを開きますこれはデスクトップブラウザでうまく動作しますが、モバイルデバイスを使用するとただちにボタンをクリックしても何もしません。

+0

HTMLとCSSコードを追加できますか – Thusitha

答えて

1

labelを使用して、これを行うための素晴らしい方法があります!

は、あなたが今、ボタンのために使用されるスタイルとCSSでスタイルlabel.file-upload-btnそして、そう...

<label class="file-upload-btn" for="inputId">Button Text</label> 

のように、ラベルのfor属性に隠し入力のIDを追加します。これはまったく同じように見えますが、関連する入力にラベルを付けることにより、ファイルのアップロードダイアログは一貫して表示されます。

+0

これは私の問題にはうまくいきました.JSは必要ありません。 – Riaan

+0

@Riaan Glad it helped! – SidTheBeard

0

は、この方法を試してください。

$('.call-upload').click(function() { 
     $(this).siblings('.invisible-file-input').get(0).click(); 
}); 
+0

デスクトップでも動作しますが、モバイルではまだ何もしません – Riaan

+0

'.invisible-file-input'のCSS定義を表示できますか? –

関連する問題