javascript - RichFaces 输入文本调用文件上传

标签 javascript html jsf file-upload richfaces

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

感谢您的帮助

最佳答案

您无法强制浏览器触发文件上传。您可以做的是使用CSS技巧将文件输入定位在文本输入之上并使其透明。然后看起来您已经有了一个输入字段(请注意,您实际上甚至不需要它成为文本输入;它可以只是 <span> ,因为您需要表单来包含文件中的参数值无论如何输入本身)。

在正常的浏览器中实现此功能并不是非常困难,但对于 IE 来说可能会有点麻烦。 IE7 允许人们在文件输入中键入内容,而您可能不希望这样做。当在任意位置单击输入时,其他所有内容都会启动文件浏览器对话框。

关于javascript - RichFaces 输入文本调用文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350375/

相关文章:

javascript - 为什么 window.load 事件发生在 img 加载之前?

html 复选框显示在 h2 标签下方

javascript - 如何向 Meteor 应用程序添加 "# users online"功能?

validation - 当用户想要覆盖时,JSF 表单验证会跳过第二次提交的特定验证器

jsf - 使用图像作为 p :selectOneRadio 的标签

javascript - 在 AngularJS 场景中向 Froala 编辑器添加自定义下拉菜单

javascript - 用重音改变字符

javascript - 通过变量访问嵌套的 Javascript JSON 属性

javascript - 理解javascript借用方法

jsf - a href/h :link outcome/h:button outcome methods automatically called during page load without any clicks