2010-07-09 2 views

답변

5

표준 <h:form> 구성 요소에는 autocomplete 속성이 없습니다. 입력 기준으로 끄거나 UIForm에 대한 맞춤형 렌더러를 작성해야합니다.

현재이 속성을 <h:form> : JSF spec issue 418에 추가 할 것을 요청하는 미해결 문제가 있습니다. 현재 JSF 2.2로 예정되어 있습니다.

한편 OmniFaces Html5RenderKit을 사용하면 <h:form> 구성 요소에 autocomplete="off"에 대한 지원을받을 수 있습니다.

7

자바 스크립트와 실제 빠른 해결책이 될 것이다 (가정 당신은 jQuery를로드 가지고있다) : 당신은 바닐라 자바 ​​스크립트로 유지하려면

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

, 당신은 할 수 있습니다 :

<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 첫 번째 해결 방법을 사용하는 것이 더 나을지도 모릅니다.

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

이미가없는 경우 head attribite에 xmlns:f="http://xmlns.jcp.org/jsf/core"을 추가하는 것을 잊지 마십시오

+0

jQuery를 사용하는 동안 양식 ID에 ':'문자가 포함되어 있으면 지원되지 않는 의사 오류가 발생합니다. 이 경우에 $ (document.getElementById ('parentElement : formElement'). attr ("autocomplete", "off");을 사용할 수 있습니다. 자세한 내용은 http://stackoverflow.com/questions/16077280/uncaught-error- syntax-error-unrecognized-expression-unsupported-pseudo에 대한 자세한 내용은 – vahapt

+0

jsf 2.0을 사용하여 최상의 솔루션입니다. – Fritz

6

이 일을 가장 쉬운 방법이입니다.

왜?

  1. 당신이 당신의 양식을 렌더링/업데이트해야 페이지의 어딘가에 아약스 이벤트가있는 경우, 그것은 autocomplete 속성을 풀 수 없습니다 때문입니다.
  2. 섹시 해 보이기 때문에 (JS 방식이보기 흉하게 보임).

팁 : 당신은 새로운 HTML 사양의 특정 속성이없는 모든 JSF 요소 f:passThroughAttribute를 사용할 수 있습니다.

+1

슬프게도 JSF 2.2에서만 작동합니다. – Roben