【问题标题】:RichFaces inputtext invoke fileuploadRichFaces inputtext 调用文件上传
【发布时间】:2011-09-15 01:48:40
【问题描述】:

我有一个 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 中显示文件名。

感谢您的帮助

【问题讨论】:

    标签: javascript html jsf file-upload richfaces


    【解决方案1】:

    您不能强制浏览器触发文件上传。您可以做的是使用 CSS 技巧将文件输入置于文本输入之上并使其透明。然后看起来你有一个输入字段(注意你甚至不需要它是一个文本输入;它可以只是一个&lt;span&gt;,因为你需要表单来包含文件中的参数值无论如何都要自己输入)。

    在体面的浏览器上实现这一点并不难,但对 IE 来说可能是个小麻烦。 IE7 允许人们在文件输入中键入,这可能是您不想要的。在任何地方单击输入时,其他所有内容都会启动文件浏览器对话框。

    【讨论】:

    • 我将如何为此使用跨度?我对richfaces很陌生;我如何将文件上传绑定到跨度?
    • 我的意思是,如果你想显示选中的文件名,你可以把它放到一个普通的&lt;span&gt;标签中;它不必是&lt;input&gt;。通过处理来自文件输入的“更改”事件,您将在 &lt;span&gt; 中显示文件名。请注意,浏览器不会给你完整的路径名,只是文件名。
    • 我需要成为一个 inputText,这是设计规范的一部分。
    • 好吧,随便吧,但是让它成为一个真正的文本输入只会让它变得更难;至少让它“只读”。
    • 是的,readyonly 很好。由于设计规范,我只需要以这种特定方式使用它。
    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多