2010-07-09 11 views
8

में फॉर्म स्तर पर स्वत: पूर्ण = "बंद" कैसे करें JSF में फॉर्म स्तर पर स्वत: पूर्ण = "बंद" कैसे करें?जेएसएफ

उत्तर

5

दुर्भाग्यवश, मानक <h:form> घटक में autocomplete विशेषता नहीं है। आपको इसे प्रति-इनपुट आधार पर बंद करना होगा या UIForm के लिए कस्टम रेंडरर लिखना होगा।

वर्तमान में एक खुला मुद्दा है जो इस विशेषता को <h:form>: JSF spec issue 418 पर जोड़ने का अनुरोध करता है। वर्तमान में, यह जेएसएफ 2.2 के लिए निर्धारित है।

इस बीच, <h:form> घटक पर autocomplete="off" के लिए समर्थन प्राप्त करने के लिए आप OmniFaces Html5RenderKit का उपयोग कर सकते हैं।

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 का उपयोग करते समय, यदि आपके फॉर्म आईडी में ':' वर्ण है तो आपको असमर्थित छद्म त्रुटि मिल जाएगी। आप $ (document.getElementById ('parentElement: formElement') का उपयोग कर सकते हैं। Attr ("स्वतः पूर्ण", "बंद"); यदि यह मामला है। Http://stackoverflow.com/questions/16077280/uncaught-error- विवरण के लिए वाक्यविन्यास-त्रुटि-अपरिचित-अभिव्यक्ति-असमर्थित-छद्म – vahapt

+0

मेरे लिए सबसे अच्छा व्यवहार्य समाधान। जेएसएफ 2.0 – Fritz

6

ऐसा करने का सबसे अच्छा और आसान तरीका यह है।

क्यों?

  1. अगर आप अपने पेज को अद्यतन करने/अपने प्रपत्र प्रस्तुत करना की जरूरत है कि कहीं एक ajax घटना है, यह ढीला नहीं होगा क्योंकि autocomplete विशेषता।
  2. क्योंकि यह सेक्सी दिखता है (जेएस रास्ता बदसूरत दिखता है)।

युक्ति: आप हर JSF तत्व है जो नए HTML विनिर्देशों के किसी भी विशिष्ट विशेषता नहीं है के लिए f:passThroughAttribute उपयोग कर सकते हैं।

+1

का उपयोग करके दुख की बात यह है कि यह केवल जेएसएफ 2.2 के साथ काम करता है। फिर भी अगर समर्थित है तो सबसे अच्छा समाधान। – Roben