2016-09-29 1 views
1

FileタイプのVaadin Paper Inputの[Choose File]ボタンを除外し、標準Vaadinペーパー入力を使用して同じアクションを実行します。 つまり、標準Vaadin Paper Inputをクリックすると、ブラウザウィンドウが開きます。Vaadinのファイルブラウズウィンドウオープンアクションファイルタイプのファイル

標準的なVaadin Paper InputのclickイベントからFileタイプのVaadin Paper Inputのクリックイベントとフォーカスイベントをシミュレートしようとしました。 フォーカスとクリックの両方が正常に動作していますが、ブラウザウィンドウが開いていません。

私のプロトタイプコードは次のようになります。このコードでは、フォーカスイベントをシミュレートできました。同様に、私はclickイベントを試しましたが、それは私の期待を満たしませんでした。

final PaperInput text = new PaperInput(); 
    text.setLabel("Text Box"); 
    text.setAlwaysFloatLabel(true); 


    final PaperInput filePaperInput = new PaperInput(); 
    filePaperInput.setLabel("File"); 
    filePaperInput.setType("file"); 
    filePaperInput.setAlwaysFloatLabel(true); 


    text.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) {    
      filePaperInput.getElement().<InputElement> cast().focus(); 
     } 
    }); 

答えて

0

ポリマー要素ドキュメントを読み取り:

紙入力がネイティブタイプ=検索またはタイプ=ファイル機能を使用することができます。ただし、入力(検索アイコン、ファイルボタン、日付プレースホルダなど)のネイティブスタイルを制御することができないため、ラベルが自動的に浮動します。追加情報テキストのためにプレースホルダ属性を引き続き使用することができます。

これは、容器から取り除くことができるかどうかはわかりません。

あまりにもこれを読む:

なぜそれは、プログラムファイルの入力選択をトリガすることができないのですか?

ほとんどのブラウザでは、入力フィールドがセキュリティ上の予防措置として直接クリック(またはキーボード)イベントを受信しなかった場合にファイルを送信できません。 一部のブラウザ(Google Chromeなど)はクリックイベントを単に防ぎます。 Internet Explorerは、プログラムでトリガされたファイル入力フィールドによって選択された のファイルを送信しません。 Firefox 4 (およびそれ以降)は、今まで完全に隠された(表示:なし)ファイル入力 フィールドで 「クリック」 - イベントを呼び出すことを完全にサポートする唯一のブラウザです。