【问题标题】:Play! Framework and Uniformjs don't play nicely for file uploading玩!框架和 Uniformjs 不能很好地用于文件上传
【发布时间】:2011-08-16 20:37:51
【问题描述】:

我正在 Play! 中编写一个小型 web 应用程序,并尝试使用 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) {
...
}

这一切都像是一场戏!示例(http://www.playframework.org/documentation/1.0/5things#a5.Straightforwardfileuploadmanagementa),一切正常。问题是当我将 Uniform 应用于我的文件输入时:

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

现在控制器接收到一个空文件对象!有没有办法解决这个问题?

更新:

删除 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>

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

【问题讨论】:

  • 如果你禁用制服,你确定它有效吗?
  • 虽然意义不大,但确实如此。将“input:file”从 Uniform 初始化中取出,使其立即工作。
  • 尝试去掉id,快速查看Uniform源代码后,通过classes和id进行了增强。
  • @Zenklys 删除 id 没有帮助,但它具有教育意义。请参阅上面的编辑。
  • 你用的是什么浏览器?有没有用其他浏览器测试过?

标签: javascript playframework uniform


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多