Я пишу небольшое веб-приложение в Play !, и пытаюсь использовать 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! Есть ли способ обойти это?
ОБНОВЛЕНИЕ:
УдалениеИдентификаторы этого не делают (хотя это казалось очень правдоподобным!). Источник-источник на нарушающем элементе показывает:
<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>
До сих пор не знаю, что происходит, но это конечный результат.