输入字段必需标记和自定义错误消息

时间:2012-11-09 14:07:54

标签: salesforce visualforce input-field

我正在使用一个inputField,它直接绑定到控制器中的自定义对象字段。 以下将生成带有标签的下拉列表。

 <apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" />

我的问题是我需要在inputField旁边添加所需的标记,而不会丢失标签或有默认的错误消息。

当我使用

<apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" required="true"/>

我得到了所需的标记,但我丢失了自定义错误消息以进行验证。

当我使用

<apex:outputPanel styleClass="requiredInput" layout="block">
     <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
     <apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" />
  </apex:outputPanel>

下拉列表附近的标签不再显示..

有没有办法可以完成我的需要?

3 个答案:

答案 0 :(得分:1)

我最终使用了这个。

//this part to add the missing label.
<apex:outputLabel styleclass="labelCol" value="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}" />

<apex:outputPanel styleClass="requiredInput" layout="block">
     <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
     <apex:inputField value="{!Agency_Profile.Location_Principal_Activity__c}" />
  </apex:outputPanel>

答案 1 :(得分:0)

最好的方法是为此对象的此字段添加validation rule

答案 2 :(得分:0)

使用raym0nds方法,这是它查找自定义控制器变量的方式,在我的情况下使用对象的自定义字段中的名称。:

//this part to add the missing label.
<apex:outputLabel for="myId" styleclass="labelCol" value="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}" />

<apex:outputPanel styleClass="requiredInput" layout="block">
     <apex:outputPanel styleClass="requiredBlock" layout="block"/> 
     <apex:inputText id="myId" required="true" value="{!myCustomField}" label="{!$ObjectType.Agency_Profile__c.fields.Location_Principal_Activity__c.Label}"  />
</apex:outputPanel>

注意apex:inputText类型,该类型现在具有labelidrequired属性。 apex:outputLabel现在具有for属性。 for/id只是点击标签会将光标放到右侧字段中。 required启用表单验证,因为其余部分只是化妆。 label为该验证错误添加了一个好的字段名称 - 否则会在那里显示内部字段ID。

如果您有一个批量编辑表,其中所有记录共享某些值(例如为同一公司添加多个潜在客户),整个方法很有意思