2010-07-09 28 views

cevap

5

Ne yazık ki, standart <h:form> bileşeninde autocomplete özniteliği yok. Her giriş için ayrı ayrı kapatmak veya UIForm için özel bir oluşturucu yazmanız gerekir.

Şu anda bu özniteliği <h:form>: JSF spec issue 418'a eklemeyi isteyen bir sorun var. Şu anda, JSF 2.2 için planlanmış.

Bu arada, <h:form> bileşeninde destek almak için OmniFaces Html5RenderKit'u kullanabilirsiniz.

7

JavaScript ile gerçekten hızlı çözüm olacaktır (varsayarsak jQuery yüklü var): Eğer vanilya Javascript ile kalmak istiyorsanız

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

, yapabileceğiniz:

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

Not: İkinci çözüm için tarayıcınızın şu adreste kaplandığından emin olun: https://developer.mozilla.org/en-US/docs/DOM/Mozilla_event_reference/DOMContentLoaded#Browser_compatibility İlk çözümü kullanmamanız daha iyi olabilir.

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

Zaten yoksa senin head attribite için xmlns:f="http://xmlns.jcp.org/jsf/core" eklemeyi unutmayın:

+0

jQuery kullanılırken, form kimliğiniz ':' karakterini içeriyorsa, desteklenmeyen sahte hata alırsınız. $ (Document.getElementById ('parentElement: formElement'). Attr ("autocomplete", "off") öğesini kullanabilir, eğer durum böyleyse, bkz. Http://stackoverflow.com/questions/16077280/uncaught-error- syntax-error-unrecognized-expression-unsupported-pseudo Ayrıntılar için – vahapt

+0

en uygun çözüm benim için jsf 2.0 kullanarak – Fritz

6

Bunu yapmanın en iyi ve en kolay yolu budur.

Neden?

  1. Formunuzu işlemek/güncellemek gerekiyor sayfanıza bir yere bir ajax olayı varsa, bu autocomplete niteliğini gevşek olmayacak çünkü.
  2. Seksi görünüyor (JS yolu çirkin görünüyor).

İpucu: Sen yeni HTML özelliklerinin herhangi bir spesifik özelliği olmayan her JSF element için f:passThroughAttribute kullanabilirsiniz.

+1

Ne yazık ki bu sadece JSF 2.2 ile çalışıyor. – Roben