The <apex: inputSecret> is another important component in the Visualforce page that is used for creating an HTML input element of type password.
The HTML pass-through attributes are supported by this component using the "html-" prefix, which will be attached to the generated <input> tag.
The <apex:inputSecret> component has the following attributes:
1. accesskey
The acesskey is a string type attribute that defines the keyboard access key that puts the field in focus.
Syntax
<apex:inputSecret accesskey="f"></apex:inputSecret>
2. alt
The alt is a string-type attribute that defines the field's alternative text description.
Syntax
<apex:inputSecret alt="Alternative Text Here"></apex:inputSecret>
3. dir
The dir is a string-type attribute used to specify the direction in which the generated HTML component should be used. RTL and LTR are the two possible values for the dir attribute.
Syntax
<apex:inputSecret dir="RTL"></apex:inputSecret>
4. disabled
The disabled is a Boolean type attribute that specifies whether this text box should be displayed in the disabled state or not. By default, its value is set to false.
Syntax
<apex:inputSecret disabled="true"></apex:inputSecret>
5. id
The id is a string type attribute, i.e., a unique identifier that allows this component to be referenced by other components in the page.
Syntax
<apex:inputSecret id="inputId"></apex:inputSecret>
6. immediate
The immediate is a Boolean type attribute. If its value is true, the action associated with the component will happen immediately. The function will not process the validation rules associated with the fields on the page.
Syntax
<apex:inputSecret immediate="true"></apex:inputSecret>
7. label
The label is a string-type attribute used to display text next to the control and reference the control in the error message.
Syntax
AD
<apex:inputSecret label="Label Text"></apex:inputSecret>
8. lang
The lang is a string-type attribute used for specifying the base language used for the generated HTML output. The possible values of this attribute are en and en-US.
Syntax
<apex:inputSecret lang="en"></apex:inputSecret>
9. maxlength
The maxlength is an Integer type value that is used to specify the maximum number of characters the user can enter for this field.
Syntax
<apex:inputSecret maxlength="12"></apex:inputSecret>
10. onblur
The onblur is a string-type attribute used to invoke the JavaScript method when the onblur event occurs or simply when the focus moves off the field.
AD
Syntax:
<apex:inputSecret onblur="saveRecords();"></apex:inputSecret>
11. onchange
The onchange is a string-type attribute used to invoke the JavaScript method when the onchange event occurs or when the user changes the field's content.
Syntax:
<apex:inputSecret onchange="saveRecords();"></apex:inputSecret>
12. onclick
The onclick is a string-type attribute used to invoke the JavaScript method when the onclick event occurs or when the user clicks the field.
Syntax:
<apex:inputSecret onclick="saveRecords();"></apex:inputSecret>
13. ondblclick
The ondblclick is a string-type attribute used to invoke the JavaScript method when the ondblclick event occurs or when the user clicks the field twice.
Syntax:
<apex:inputSecret ondblclick="saveRecords();"></apex:inputSecret>
14. onfocus
The onfocus is a string-type attribute used to invoke the JavaScript method when the input event occurs, or the focus is on the field.
Syntax:
<apex:inputSecret onfocus="saveRecords();"></apex:inputSecret>
15. onkeydown
The onkeydown is a string-type attribute used to invoke the JavaScript method when the onkeydown event occurs or when the user presses a keyboard key.
Syntax:
<apex:inputSecret onkeydown="saveRecords();"></apex:inputSecret>
16. onkeypress
The onkeypress is a string-type attribute used to invoke the JavaScript method when the onkeypress event occurs or when the user holds down or presses a keyboard key.
Syntax:
<apex:inputSecret onkeypress="saveRecords();"></apex:inputSecret>
17. onkeyup
The onkeyup is a string-type attribute used to invoke the JavaScript method when the onkeyup event occurs or when the user releases a keyboard key.
Syntax:
<apex:inputSecret onkeyup="saveRecords();"></apex:inputSecret>
18. onmousedown
The onmousedown is a string-type attribute used to invoke the JavaScript method when the onmousedown event occurs or when the user presses the mouse button.
Syntax:
<apex:inputSecret onmousedown="countKeys();"></apex:inputSecret>
19. onmousemove
The onmousemove is a string-type attribute used to invoke the JavaScript method when the onmousemove event occurs or when the user moves the mouse pointer.
Syntax:
<apex:inputSecret onmousemove="countKeys();"></apex:inputSecret>
20. onmouseout
The onmouseout is a string-type attribute used to invoke the JavaScript method when the onmouseout event occurs or when the user moves the mouse pointer away from the field.
Syntax:
<apex:inputSecret onmouseout="countKeys();"></apex:inputSecret>
21. onmouseover
The onmouseover is a string-type attribute used to invoke the JavaScript method when the onmouseover event occurs or when the user moves the pointer over the input.
Syntax:
<apex:inputSecret onmouseover="countKeys();"></apex:inputSecret>
22. onmouseup
The onmouseup is a string-type attribute used to invoke the JavaScript method when the onmouseup event occurs or when the user releases the mouse button.
Syntax:
<apex:inputSecret onmouseup="countKeys();"></apex:inputSecret>
23. onselect
The onselect is a string-type attribute used to invoke the JavaScript method when the onselect event occurs or when the user selects text in the field.
Syntax:
<apex:inputSecret onselect="getText();"></apex:inputSecret>
24. readonly
The readonly is a Boolean type attribute that is used for specifying whether this field is rendered as read-only. By default, its value is set to false.
Syntax:
<apex:inputSecret readonly="true"></apex:inputSecret>
25. redisplay
The redisplay is a Boolean type attribute used to specify whether a previously entered password is rendered in this form or not. By default, its value is set to false.
Syntax:
<apex:inputSecret redisplay="false"></apex:inputSecret>
26. rendered
The rendered is a Boolean type attribute that specifies whether this component needs to be rendered on the page or not. By default, its value is set to true.
Syntax:
<apex:inputSecret rendered="false"></apex:inputSecret>
27. required
The required is a Boolean type attribute that specifies whether this field is a required field or not. By default, its value is set to false.
Syntax:
<apex:inputSecret required="true"></apex:inputSecret>
28. size
The size is an Integer type attribute used to specify the width of the input field. Width is expressed by the number of characters displayed at a time.
Syntax:
<apex:inputSecret size="50"></apex:inputSecret>
29. style
The style is a string type attribute used to specify the inline CSS style that will be applied for displaying the input component.
Syntax:
<apex:inputSecret style="display:none;"></apex:inputSecret>
30. styleClass
The styleClass is a string type attribute used to specify the style class that will be applied for displaying the input component.
Syntax:
<apex:inputSecret styleClass="inputClass"></apex:inputSecret>
31. tabindex
The tabindex is a string type attribute used to specify the order in which this field is selected compared to other page components when a user presses the Tab key repeatedly. The value of this attribute should be between 0 to 32767.
Syntax:
<apex:inputSecret tabindex="1024"></apex:inputSecret>
32. title
The title is a string-type attribute that specifies the text to display as a tooltip when the user's mouse pointer hovers over this component.
Syntax:
<apex:inputSecret title="Image Title"></apex:inputSecret>
33. value
The value is an Object type attribute, i.e., an expression that references the controller class variable associated with this field.
Syntax:
<apex:inputSecret value="{!variableName}"></apex:inputSecret>
Let's take an example to understand how we can use the <apex:inputSecret> component on the Visualforce page.
ApexInputSecretExample.vfp
<!-- create apex page with custom controller-->
<apex:page standardController="Contact" extensions="ApexInputSecretController" docType="html-5.0">
<!-- use apex form to show the accounts and contacts table-->
<apex:form id="changeStatusForm">
<apex:pageBlock title="Account/Contact Information">
<!-- command buttons are responsible for showing accounts in the table-->
<apex:pageMessages />
<apex:pageBlockSection title="Account Information">
<apex:input value="{!accName}" label="Account Name"/>
<apex:input value="{!accAccountNumber}" label="Account Number"/>
<apex:input value="{!accPhone}" label="Phone"/>
<apex:input value="{!accRating}" label="Rating"/>
<apex:input value="{!accWebsite}" label="Website"/>
<apex:inputSecret value="{!accPass}" label="Account Password"/>
</apex:pageBlockSection>
<apex:pageBlockSection title="Contact Information">
<apex:input value="{!conFirstName}" label="First Name"/>
<apex:input value="{!conLastName}" label="Last Name"/>
<apex:input value="{!conAccountId}" label="Account Id"/>
<apex:input value="{!conEmail}" label="Email"/>
<apex:input value="{!conPhone}" label="Phone"/>
<apex:inputSecret value="{!conPass}" label="Contact Password"/>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
ApexInputSecretController.apxc
// create ApexInputSecretController class to get list of Accounts and Contacts
public class ApexInputSecretController {
public string accName{get;set;}
public string accAccountNumber{get;set;}
public string accPhone{get;set;}
public string accRating{get;set;}
public string accWebsite{get;set;}
public string accPass{get;set;}
public string conFirstName{get;set;}
public string conLastName{get;set;}
public string conAccountId{get;set;}
public string conEmail{get;set;}
public string conPhone{get;set;}
public string conPass{get;set;}
public String conId {get;set;}
//default constructor to get record Id from the page
public ApexInputSecretController(ApexPages.StandardController controller){
conId = controller.getRecord().Id; //'001x00000035SxX' ;
Contact con = [Select Id, FirstName, LastName, AccountId, Email, Phone From Contact Where Id =:conId];
Account acc = [Select Id, Name, AccountNumber, Phone, Rating, Website From Account where Id =:con.AccountId ];
accName = acc.Name;
accAccountNumber = acc.AccountNumber;
accPhone = acc.Phone;
accRating = acc.Rating;
accWebsite = acc.Website;
conFirstName = con.FirstName;
conLastName = con.LastName;
conAccountId = con.AccountId;
conEmail = con.Email;
conPhone = con.Phone;
}
}