我想在我的登录表单中添加一些 iOS 特定的标签属性。如果我查看我的网页源代码,则不存在自动更正、自动大写和拼写检查的属性。这是什么原因?我正在使用 JSF 2.x。
<h:inputText id="user-name" forceId="true" value="#{login.username}" style="width:120px;"
autocorrect="off" autocapitalize="off" spellcheck="false" />
我想在我的登录表单中添加一些 iOS 特定的标签属性。如果我查看我的网页源代码,则不存在自动更正、自动大写和拼写检查的属性。这是什么原因?我正在使用 JSF 2.x。
<h:inputText id="user-name" forceId="true" value="#{login.username}" style="width:120px;"
autocorrect="off" autocapitalize="off" spellcheck="false" />
这是设计使然。您只能指定JSF 组件本身支持的属性(即它在标签文档的属性列表中列出)。您不能指定任意附加属性,它们都将被完全忽略。
有几种方法可以解决这个问题:
如果您已经在 JSF 2.2+ 上,只需将其指定为passthrough 属性:
<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
...
<h:inputText ... a:autocorrect="off" />
(请注意,我使用xmlns:a
而不是xmlns:p
避免与 PrimeFaces 默认命名空间发生冲突)
或者:
<html ... xmlns:f="http://xmlns.jcp.org/jsf/core">
...
<h:inputText ...>
<f:passThroughAttribute name="autocorrect" value="off" />
</h:inputText>
创建自定义渲染器。您可以在以下答案中找到几个具体示例: