как сделать автозаполнение = "выкл" на уровне формы в JSF - PullRequest
10 голосов
/ 09 июля 2010

как сделать autocomplete = "off" на уровне формы в JSF?

Ответы [ 3 ]

9 голосов
/ 18 апреля 2013

Очень быстрое решение с использованием Javascript (если вы загрузили jQuery):

<script>
    $(function(){
        $("#form").attr("autocomplete", "off");
    });
</script>

Если вы хотите остаться с ванильным Javascript, вы можете сделать:

<script>
    document.addEventListener("DOMContentLoaded", function(){
        document.getElementById("form").setAttribute("autocomplete", "off");
    });
</script>

Примечание: для второго решения убедитесь, что ваш браузер здесь: https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/DOMContentLoaded#Browser_compatibility Если нет, то вам лучше использовать первое решение.

9 голосов
/ 08 августа 2016

Лучший и самый простой способ сделать это это:

<h:form id="myForm">
    <f:passThroughAttribute name="autocomplete" value="off"/>
    ...
</h:form>

Не забудьте добавить xmlns:f="http://xmlns.jcp.org/jsf/core" к вашему атрибуту head, если вы этого еще не сделали.

Почему?

  1. Поскольку если у вас на странице есть событие ajax, которое требует обновления / визуализации вашей формы, оно не потеряет атрибут autocomplete.
  2. Потому что это выглядит сексуально (JS выглядит ужасно).

Совет: Вы можете использовать f:passThroughAttribute для каждого элемента JSF, который не имеет какого-либо конкретного атрибута более новых спецификаций HTML.

5 голосов
/ 09 июля 2010

К сожалению, стандартный компонент <h:form> не имеет атрибута autocomplete. Вам придется отключить его отдельно для каждого ввода или написать собственный рендер для UIForm.

В настоящее время существует открытая проблема, которая запрашивает добавление этого атрибута к <h:form>: JSF spec проблема 418 . В настоящее время запланировано JSF 2.2.

Тем временем вы можете использовать OmniFaces Html5RenderKit, чтобы получить поддержку autocomplete="off" для компонента <h:form>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...