how to do autocomplete="off" at form level in JSF?
Asked
Active
Viewed 1.3k times
2 Answers
13
The best and easiest way of doing this is this:
<h:form id="myForm">
<f:passThroughAttribute name="autocomplete" value="off"/>
...
</h:form>
Don't forget to add xmlns:f="http://xmlns.jcp.org/jsf/core"
to your head
attribite if you don't have already.
Why?
- Because if you have an ajax event somewhere in your page that needs to update/render your form, it will not loose the
autocomplete
attribute. - Because it looks sexy (JS way looks ugly).
Tip: You can use f:passThroughAttribute
for every JSF element which does not have any specific attribute of newer HTML specifications.

Mateus Viccari
- 7,389
- 14
- 65
- 101
-
1Sadly this only works with JSF 2.2. Still the best solution by far, if supported. – Roben Sep 05 '16 at 14:08
-
I tested this solution on JSF version 2.3 and it works – Martin Volek Aug 01 '22 at 14:17
10
A real quick solution with Javascript would be (assuming you have got jQuery loaded):
<script>
$(function(){
$("#form").attr("autocomplete", "off");
});
</script>
If you want to stay with vanilla Javascript, you can do:
<script>
document.addEventListener("DOMContentLoaded", function(){
document.getElementById("form").setAttribute("autocomplete", "off");
});
</script>
Note: For the second solution make sure your browser is covered here: https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/DOMContentLoaded#Browser_compatibility If not you might be better off using the first solution.

Felix
- 4,213
- 1
- 21
- 27
-
While using jQuery, if your form id contains ':' character you'll get unsupported pseudo error. You can use $(document.getElementById( 'parentElement:formElement').attr("autocomplete", "off"); if this is the case. See http://stackoverflow.com/questions/16077280/uncaught-error-syntax-error-unrecognized-expression-unsupported-pseudo for details – vahapt Jul 31 '13 at 10:52
-