Входной текст RichFaces вызывает загрузку файла - PullRequest
0 голосов
/ 15 июня 2011

У меня есть h: inputText и rich: fileUpload. Я хотел бы, чтобы inputText при нажатии вызывал fileUpload. Как бы я поступил так? Прямо сейчас у меня есть это:

<h:inputText id="uploadName" maxlength="255" value="#{bean.fileName}" required="false"
                                    onclick="INVOKE FILEUPLOAD"
                                    >
                                        </h:inputText>                                  
                                        <rich:fileUpload id="uploadFile" addControlLabel="Upload"
                                            fileUploadListener="#{bean.fileUploadListener}"
                                            uploadData="#{bean.data}"
                                            listWidth="100px" listHeight="0px" maxFilesQuantity="1"
                                            immediateUpload="true" acceptedTypes="xml" allowFlash="false"
                                            status="eventQueueFileUpload">

                                        </rich:fileUpload>

По сути, я хочу, чтобы inputText и fileUpload имели одинаковую функцию, я бы просто показал имя файла в inputText.

Спасибо за помощь

1 Ответ

2 голосов
/ 15 июня 2011

Вы не можете заставить браузер инициировать загрузку файла. То, что вы можете сделать, это использовать приемы CSS, чтобы расположить ввод файла поверх ввода текста и сделать его прозрачным. Тогда похоже, что у вас есть поле ввода (и обратите внимание, что вам даже не нужно, чтобы оно было текстовым вводом; это может быть просто <span>, так как вам нужна форма для хранения значения параметра из файла В любом случае, введите себя).

Сделать это не очень сложно для приличных браузеров, но это может быть незначительной болью для IE. IE7 позволяет людям вводить данные в файл, что вам, вероятно, не нужно. Все остальное откроет диалоговое окно файлового браузера, когда на входе нажимают где-либо.

...