how to do autocomplete="off" at form level in JSF?
Asked
Active
Viewed 1.2k times
2 Answers
12
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
autocompleteattribute. - 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
- 6,939
- 13
- 62
- 97
-
1Sadly this only works with JSF 2.2. Still the best solution by far, if supported. – Roben Sep 05 '16 at 14:08
9
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
- 3,943
- 1
- 19
- 26
-
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
-