1

我有一个编辑框,我想使用占位符和密码='true'。更改 password='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,因此他不必处理这个问题。)

4

1 回答 1

4

这有点小技巧,但我发现它是一种有用的模式,可以克服默认渲染器拒绝允许我们为输入组件指定 HTML5 类型的问题。

设置 astyleClass使其明显是一种特定类型的输入(即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 输入类型分配给标准inputText组件。

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

于 2013-10-03T00:12:32.637 回答