2013-10-02 69 views
1

我有一個編輯框,我想使用佔位符AND password ='true'。更改密碼='true'會導致佔位符無法工作,密碼類型確實起作用。在Xpages中使用佔位符屬性和密碼類型

我這樣設置佔位符:<xp:attr name="placeholder" value="Enter Password">/xp:attr>

你不能設置類型=密碼或者你會得到一個錯誤XSP告訴你使用密碼=真來代替。

BTW:我使用的是佔位符,而不是在相同的風格斯洛博丹洛赫亞受歡迎的博客文章標籤:http://xpagesbeast.com/uxdesign/customizing-the-html-log-in-form-with-bootstrap/(在他的情況,他使用中繼HTML,所以他沒有來處理這個問題。)

+1

設置password = true似乎會導致它忽略您嘗試設置的任何屬性。我試圖添加一個類來使用jQuery來訪問它。這可能是一個bug? –

回答

3

這有點破解,但我發現它是克服默認渲染器拒絕讓我們爲輸入組件指定HTML5類型的有用模式。

設置一個styleClass,使其明顯是特定類型的輸入(即passwordInput)。

添加scriptBlock頁面:

<xp:scriptBlock> 
    <xp:this.value><![CDATA[XSP.addOnLoad(function(){ 
    dojo.query(".passwordInput").forEach(function(eachInput){ 
     dojo.attr(eachInput, "type", "password"); 
    }); 
});]]></xp:this.value> 
</xp:scriptBlock> 

這將導致所有輸入,一類passwordInput成爲密碼字段。您可以使用相同的模式進行任何屬性操作,但我最常使用它將HTML5 input types分配給標準inputText組件。

警告:如果你有你的網頁,導致重新加載這些投入在局部刷新事件,確保包括scriptBlock同樣刷新目標。否則,純文本字段將在初始頁面加載時成爲密碼字段,但在以目標字段或其容器爲目標的任何事件之後將恢復爲純文本字段;但是,如果scriptBlock位於刷新目標中,則在呈現輸入時,腳本將再次執行,並再次將其設置爲密碼字段。

+0

這工作完美。是的,我會說這是一個黑客好吧。我希望IBM在下一個版本中解決這個問題。再一次,非常感謝你! –