2
我在Play!中写了一个小的web应用程序,并尝试使用UniformJS(http://uniformjs.com/)使我的表单元素看起来不错。该应用程序的一个页面,用户可以上传文件:玩! Framework和Uniformjs不能很好地播放文件
#{ 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) {
...
}
这一切就像游戏之一!例子(http://www.playframework.org/documentation/1.0/5things#a5.Straightforwardfileuploadmanagementa),并且一切正常。问题是,当我将Uniform应用到我的文件输入时:
$(function(){ $("input:file").uniform(); });
现在控制器接收到空File对象!有没有办法解决?
UPDATE:
删除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>
还不知道发生了什么事情,但这是最终结果。
如果您禁用制服,您是否绝对确定它有效? –
尽管没有什么意义,但是。从“统一初始化”中取出“输入:文件”会立即生效。 – andronikus
尝试删除ID,在快速查看统一源代码后,它会使用类和ID进行增强。 –