2

Play!で小さなWebアプリを作成していて、UniformJS(http://uniformjs.com/)を使用してフォーム要素の見栄えを良くしようとしています。アプリの1ページで、ユーザーはファイルをアップロードできます。

#{ form @Application.upload(), id:'uploadform', enctype:'multipart/form-data'}
<input type="file" id="uploadFile" name="uploadFile"/>
<input type="submit" id="surveyChooseFileButton" class="button" value="Upload" />
#{/form}

コントローラは次のようになります。

public static void upload(@Required File uploadFile, @Required String surveyName) {
...
}

これはすべてPlayの1つと同じです。例(http://www.playframework.org/documentation/1.0/5things#a5.Straightforwardfileuploadmanagementa)、そしてそれはすべてうまく機能します。問題は、ファイル入力にUniformを適用する場合です。

$(function(){ $("input:file").uniform(); });

これで、コントローラーはnullのFileオブジェクトを受け取ります。これを回避する方法はありますか?

アップデート:

IDを削除しても、それはできません(ただし、それは非常に妥当なようです!)。問題のある要素のソースを表示すると、次のことがわかります。

<div id="uniform-uploadFile" class="uploader">  <!-- A new div -->
   <!-- My input element turns invisible --> 
   <input id="uploadFile" type="file" name="uploadFile" size="19" style="opacity: 0;">  

   <!-- Uniform adds these -->
   <span class="filename" style="-moz-user-select: none;">No file selected</span> 
   <span class="action" style="-moz-user-select: none;">Select</span>
</div>

何が起こっているのかまだわかりませんが、これが最終結果です。

4

1 に答える 1

0

play-1.2.3 と uniform-2446d99 を使用してページを作成しましたが、ff 3.6.20 では問題なく動作するようです。どのバージョンのプレイ! 使っていますか?

于 2011-08-26T19:28:15.123 に答える