Change default button label of

2019-06-16 11:03发布

问题:

I am using <p:fileUpload mode="simple">. The button label shows differently in Chrome and Firefox. I would like it to be the same across browsers. I tried changing it by setting the label attribute as follows:

<p:fileUpload label="Browse" ... mode="simple" />

However, it had no effect. How can I achieve this?

回答1:

That's not possible in current PrimeFaces 3.x version. It's only possible when you use mode="advanced" instead of mode="simple".

As to your attempt to use the label attribute, this attribute is only used as label in validation error messages associated with the input component. With your label="Browse" attempt, in case of a required="true" validation error, the message would appear like so "Browse is required" instead of "formId:inputId is required".


Update: since PrimeFaces 5.x, you can add skinSimple="true" to give mode="simple" the desired skin/look'n'feel as the remainder. Also, the label will actually be used as button label. See also the showcase.

<p:fileUpload label="Browse" ... mode="simple" skinSimple="true" />


回答2:

I'm using PrimeFaces 5.0, and it's possible change the default names in advanced mode: Choose - Upload - Cancel You can use: label="" uploadLabel="" cancelLabel="" to set your custom names.

The implementation is here: http://www.primefaces.org/showcase/ui/file/upload/single.xhtml



回答3:

Look at this answer https://stackoverflow.com/a/18909078. We run with a similar problem on our Web site and we plan looking closer at that Bootstrap filestyle plugin http://markusslima.github.io/bootstrap-filestyle/.