4

まあ、私はかなり立ち往生しているので、file-fileuploadフォーム要素のスタイル設定について別の質問を開いています。

何度か試した後、私はついにそれを機能させましたが、それからいつものようにIEは再び抗議し始めます。問題は、次の形式になります。これは、実際のファイル入力をcssで非表示にするため、fileHiddenInput divを使用して、偽のファイル入力に置き換えます。

html:

<form enctype="multipart/form-data" method="post" name="uploadform" action = "">                    
  <div class="input-append">
    <input type="text" id = "appendedInputButtons" class="span2" name="fileuploadtext"><input type="button" id="upbutton" class="btn" value="Select"><input type="submit" name="upload" value="uploaden" class="btn">
  </div>
  **<div class="fileHiddenInput"><input id="upfile" type="file" name="file" value="upload" /></div>**
</form>

css:

/** file input **/
.fileHiddenInput {
    height: 0px;
    width: 0px; 
    overflow:hidden;
}

フォームを送信するためにいくつかのjqueryを使用します。そのコードをここにも配置できます。しかし、多くの試行錯誤の末、fileHiddenInput divを使用してcssでファイル入力を非表示にし続けると、IE9はファイル入力を送信しないことがわかりました。fileHiddenInput divを削除するか、cssを使用してファイル入力を表示するようにすると、フォームは正常に送信されます。

誰かが回避策を知っているか、誰かが見つけましたか?

4

2 に答える 2

2

非表示にするためのいくつかの戦略を試すことができます。1 つは、次のようにスタイルを設定して、要素を画面の外に置くことです。

position: absolute; z-index: 19999; top: -1000px; left: -1000px;

もう 1 つの方法は、ファイル入力要素を不透明なコントロールで覆うことです。

于 2012-07-10T14:53:45.370 に答える
0

要素の不透明度 0 により、非表示としてカウントされました。

うまくいけば、これは誰かを助けることができます.file_field.setをIEとselenium/watirで動作させるのに問題がありました. 問題は、 (:input => "upload") がアンカー タグの下にあることでした。インスペクターで見ると、その下にある file_field の不透明度が 0 に設定されていることがわかりました。これにより、要素が表示されないというエラーが発生していました。

opacity を > 0 (この場合は 0.01 が機能) に設定すると、Web ドライバーはそれと対話し、アップロード ウィンドウを生成してファイル パスを設定できます。

これはIE11を使用したWin7でテストしていました

于 2014-12-15T15:39:45.653 に答える