我有一个编辑框,我想使用占位符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,所以他不必处理这个问题。 )
答案 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
在刷新目标内,则在呈现输入时,脚本将再次执行,再次使其成为密码字段。