Tag Archives: Javascript

Custom Label in JavaScript File

We use {!$Label.CustomLabelName}, when we call custom label in Visualforce page JavaScript function. But if we need to access custom labels in JavaScript file in static resource, then here is the way to get the custom label value.

Load the custom label in Visualforce Page before loading the static resource JavaScript file.

<script>
    window.$Label = window.$Label || {};
    $Label.MyCustomLable1 = '{!JSENCODE($Label.MyCustomLable1)}';
    $Label.MyCustomLable2 = '{!JSENCODE($Label.MyCustomLable2)}';
</script>

Use in JavaScript file.

console.log($Label.MyCustomLable1);
alert($Label.MyCustomLable1);

Select All Checkbox Using Javascript in Visualforce Page

Controller:

public with sharing class Sample { 

    public List<AccountWrapper> accountWrapperList {get; set;}
    
    public Sample (){
        if(accountWrapperList == null) {
            accountWrapperList = new List<AccountWrapper>();
            for(Account a: [SELECT Id, Name From Account Limit 10]) {
                accountWrapperList.add(new AccountWrapper(a));
            }
        }
    }
     
    public class AccountWrapper {
        public Account acc {get; set;}
        public Boolean isSelected{get; set;}
 
        public AccountWrapper(Account a) {
            acc = a;
            isSelected = false;
        }
    }  
    
}

Visualforce Page:

<apex:page controller="Sample" sidebar="false" showHeader="false">
    <script type="text/javascript">
        function selectAllCheckboxes(obj,InputID){
            var inputCheckBox = document.getElementsByTagName("input");    
            for(var i=0; i<inputCheckBox.length; i++){          
                if(inputCheckBox[i].id.indexOf(InputID)!=-1){                                     
                    inputCheckBox[i].checked = obj.checked;
                }
            }
        }
    </script>
    <apex:form >
        <apex:pageBlock >
            <apex:pageBlockTable value="{!accountWrapperList}" var="a" id="table" title="All Accounts">
                <apex:column >
                    <apex:facet name="header">
                        <apex:inputCheckbox onclick="selectAllCheckboxes(this,'inputId')"/>
                    </apex:facet>
                    <apex:inputCheckbox value="{!a.isSelected}" id="inputId"/>
                </apex:column>
                <apex:column value="{!a.acc.Name}" />
            </apex:pageBlockTable>
        </apex:pageBlock>
    </apex:form>
</apex:page>

Output:

JavaScript Array

An array is a collection of data values. we can store more than one values and retrieve values as per index. Also, we can store lists an array. Array indexes are zero-based, the first element in the array is 0, the second is 1, and so on.

Array Example:
var fruits = ["Apple", "Orange", "Banana", "Mango"];

Array Properties:
constructor: Returns the function that created the Array object’s prototype.
length: Sets or returns the number of elements in an array.
prototype: Allows you to add properties and methods to an Array object.

Array Methods:

concat(): Joins two or more arrays, and returns a copy of the joined arrays.

copyWithin(): Copies array elements within the array, to and from specified positions.

entries(): Returns a key/value pair Array Iteration Object.

every(): Checks if every element in an array pass a test.

fill(): Fill the elements in an array with a static value.

filter(): Creates a new array with every element in an array that pass a test.

find(): Returns the value of the first element in an array that pass a test.

findIndex(): Returns the index of the first element in an array that pass a test.

forEach(): Calls a function for each array element.

from(): Creates an array from an object.

includes(): Check if an array contains the specified element.

indexOf(): Search the array for an element and returns its position.

isArray(): Checks whether an object is an array.

join(): Joins all elements of an array into a string.

keys(): Returns a Array Iteration Object, containing the keys of the original array.

lastIndexOf(): Search the array for an element, starting at the end, and returns its position.

map(): Creates a new array with the result of calling a function for each array element.

pop(): Removes the last element of an array, and returns that element.

push(): Adds new elements to the end of an array, and returns the new length.

reduce(): Reduce the values of an array to a single value (going left-to-right).

reduceRight(): Reduce the values of an array to a single value (going right-to-left).

reverse(): Reverses the order of the elements in an array.

shift(): Removes the first element of an array, and returns that element.

slice(): Selects a part of an array, and returns the new array.

some(): Checks if any of the elements in an array pass a test.

sort(): Sorts the elements of an array.

splice(): Adds/Removes elements from an array.

toString(): Converts an array to a string, and returns the result.

unshift(): Adds new elements to the beginning of an array, and returns the new length.

valueOf(): Returns the primitive value of an array.

Calling apex method from a custom button using javascript

Sometimes we need to call a method of an apex class, on click of a custom button. Let’s take an example, how we call an apex method, on click of a custom button.
Step 1:
Lets first create the Apex class.

global class MyClass {
    webservice static String myMethod(String studentId){
       return 'Test';
    }
}

Note:

  • Class needs to be a Global class.
  • And the method you intend to call from the javascript must be a Webservice Method.

Step 2:
Now to setup the custom Button.
Goto –> Setup –> Object –> Buttons, links and Actions section –> Click New Button or Link

1

  • Enter the Name of the button.
  • Behaviour : Execute Javascript.
  • Content source : On-Click Javascript.

In the code for button copy the following line of codes:

{!REQUIRESCRIPT("/soap/ajax/14.0/connection.js")}
{!REQUIRESCRIPT("/soap/ajax/14.0/apex.js")}
 
try{ 
  var studentId = '{!Student__c.Id}';
  var result = sforce.apex.execute("MyClass", "myMethod",{studentId : studentId}); 
  alert(result);
} 
catch(ex) {
  alert(ex); 
}

2