在Xpages中使用占位符属性和密码类型

时间:2013-10-02 21:13:58

标签: xpages

我有一个编辑框,我想使用占位符AND密码='true'。更改密码='true'会导致占位符不起作用,密码类型确实有效。

我像这样设置占位符:<xp:attr name="placeholder" value="Enter Password">/xp:attr>

你不能设置type = password或者你得到一个XSP错误,告诉你使用password = true。

顺便说一句:我使用占位符而不是与Slobodan Lohja的热门博客文章相同的标签:http://xpagesbeast.com/uxdesign/customizing-the-html-log-in-form-with-bootstrap/(在他的情况下,他使用passthru html,所以他不必处理这个问题。 )

1 个答案:

答案 0 :(得分: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组件。

警告:如果您的网页上有部分刷新事件导致重新加载这些输入,请务必在{/ 1}} 内包含相同的刷新内容目标。否则,您的纯文本字段将在初始页面加载时成为密码字段,但在任何以该字段或其容器为目标的事件之后将恢复为纯文本字段;但是,如果scriptBlock在刷新目标内,则在呈现输入时,脚本将再次执行,再次使其成为密码字段。