Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to do autocomplete="off" at form level in JSF

Tags:

jsf

how to do autocomplete="off" at form level in JSF?

like image 642
Isha Avatar asked Jul 09 '10 09:07

Isha


People also ask

How do I turn off autocomplete in forms?

This can be done in a <form> for a complete form or for specific <input> elements: Add autocomplete="off" onto the <form> element to disable autocomplete for the entire form. Add autocomplete="off" for a specific <input> element of the form.

How do I stop textbox from auto filling?

To enable AutoComplete for the text box, select the Enable AutoComplete check box. To disable AutoComplete for the text box, clear the Enable AutoComplete check box.

What must one do so that data does not auto populate at the client side?

This is what we called autocomplete of a textbox. Go to Advanced Settings and uncheck the checkbox and then Restore.


2 Answers

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?

  1. 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.
  2. 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.

like image 127
Mateus Viccari Avatar answered Oct 17 '22 10:10

Mateus Viccari


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.

like image 45
Felix Avatar answered Oct 17 '22 09:10

Felix