玩! Framework和Uniformjs不能很好地用于文件上传

时间:2011-08-16 20:37:51

标签: javascript playframework uniform

我正在Play!中编写一个小的webapp,并试图使用UniformJS(http://uniformjs.com/)来使我的表单元素看起来很好。应用程序的一个页面允许用户上传文件:

#{ 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之一!示例(http://www.playframework.org/documentation/1.0/5things#a5.Straightforwardfileuploadmanagementa),一切正常。问题是当我将Uniform应用于我的文件输入时:

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

现在控制器收到一个空的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>

仍然不知道发生了什么,但这是最终结果。

1 个答案:

答案 0 :(得分:0)

我使用play-1.2.3和uniform-2446d99构建你的页面,并且在ff 3.6.20中它似乎在这里工作正常。什么版本的游戏!你在用吗?