【问题标题】:How can I check if a file is selected using t:inputFileUpload before submitting/uploading如何在提交/上传之前检查是否使用 t:inputFileUpload 选择了文件
【发布时间】:2011-12-01 12:17:02
【问题描述】:

我想知道是否可以在单击提交/上传按钮之前检查文件是否已被选中?

我想用这个选项解决的问题是如果没有文件已经选择,隐藏“提交/上传”按钮?使用required="true" 属性对我来说不是一个选项,因为用户不必总是提供文件。

【问题讨论】:

    标签: jsf file-upload jsf-2 tomahawk


    【解决方案1】:

    这可以通过最初通过 CSS 隐藏上传按钮并将一些 JS 附加到文件字段的change 事件来实现,如果文件已被选中,则会显示上传按钮。

    <h:form id="form">
        <t:inputFileUpload id="file" value="#{bean.file}" required="true" 
            onchange="document.getElementById('form:upload').style.display = (!!value) ? 'block' : 'none'" />
        <h:commandButton id="upload" value="Upload" action="#{bean.upload}" style="display: none;" />
    </h:form>
    

    【讨论】:

    • 感谢您的回答。您的建议是一个好主意,但仅当用户单击浏览按钮以外的其他位置时才会发生 onblur。因此,用户不知道当文件已选择时他/她应该做什么,直到他/她不小心点击了其他东西,并看到显示了提交按钮。此外,即使用户没有选择文件,也会出现提交按钮,他/她可以在没有选择文件的情况下单击提交按钮,因此我收到有关 bean.file 的一些错误。 jsf 没有提供任何东西来检查组件的内容吗?
    • @BalusC 除了禁用/启用命令按钮外,我该如何做类似的事情?
    猜你喜欢
    • 2015-06-01
    • 1970-01-01
    • 2016-02-15
    • 2010-11-27
    • 2014-07-10
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多