我遇到需要将输入文本转换为大写的情况。一旦我们在输入字段中键入一些文本,它就需要将其转换为大写。
为此,我们有以下 css 样式:
style="text-transform: uppercase"
使用这种样式,文本会自动以大写形式输入,因此我们不需要做任何额外的事情,但 Salesforce 中没有选项可以为字段添加样式。
有没有办法做到这一点?
我遇到需要将输入文本转换为大写的情况。一旦我们在输入字段中键入一些文本,它就需要将其转换为大写。
为此,我们有以下 css 样式:
style="text-transform: uppercase"
使用这种样式,文本会自动以大写形式输入,因此我们不需要做任何额外的事情,但 Salesforce 中没有选项可以为字段添加样式。
有没有办法做到这一点?
不幸的是,没有一种简单的方法可以将 CSS 样式添加到在编辑模式下出现在标准页面布局上的字段中。但是,您可能想探索一些选项(如下所列)。
您可以将样式属性添加到Visualforce (http://www.salesforce.com/us/developer/docs/pages/Content/pages_compref_inputText.htm) 或inputfield组件中的 [inputtext]。
<apex:inputtext value="{!Widget__c.Name}" style="text-transform:uppercase;" />
要改为添加 CSS 类,您可以使用该styleClass
属性。不过,我相信这只会影响文本数据的显示。为了确保在保存到数据库时该值是大写的,请在onkeyup
属性上使用此 JavaScript(如下)。
<apex:inputtext value="{!Widget__c.Name}" style="text-transform:uppercase;" onkeyup="var u=this.value.toUpperCase();if(this.value!=u){this.value=u;}" />
要在标准页面布局上执行此操作,您可以为您希望使用此功能的字段创建一个 Visualforce 页面。但是,这只会显示在记录视图中。它将在编辑中不可见。
Visualforce 页面看起来像这样(其中Widget__c
替换为您正在使用的 sObject):
<apex:page standardController="Widget__c">
<apex:form id="WidgetForm">
<apex:actionFunction name="SavePost" action="{!save}" rerender="WidgetPanel" status="str" />
<apex:outputpanel id="WidgetPanel">
<apex:inputtext id="WidgetName" value="{!Widget__c.Name}" style="text-transform:uppercase;" onkeyup="var u=this.value.toUpperCase();if(this.value!=u){this.value=u;}" />
<apex:commandbutton value="Save" styleClass="btn" onclick="SavePost();" />
<apex:actionStatus startText="Loading..." stopText="" id="str"> </apex:actionStatus>
</apex:outputpanel>
</apex:form>
</apex:page>
然后在页面布局上,单击Visualforce Pages
下方的类别Fields
和Buttons
,然后通过将 Visualforce 页面组件拖到布局中,将 Visualforce 页面添加到页面布局中。请务必通过单击新 Visualforce 页面组件右上角的扳手来配置它的高度。
使用标准页面布局的另一个更复杂的选项是在包含 JavaScript 的侧边栏上添加一个主页组件。此选项需要对 JavaScript(或jQuery一个 JavaScript 库)有一定的了解。然后,JavaScript 可以找到该字段,为其添加text-transform:uppercase;
样式,并将一个函数绑定到 keyup 事件以将所有输入的字符转换为大写 ( element.value.toUpperCase();
)。有关此方法的更多信息,请查看Tehnrd 关于为 JavaScript 添加侧边栏组件的博客文章。他使用此方法显示和隐藏标准页面布局上的按钮,但可以对其进行修改以适合您的目的。