Hey guys, today in this post we are going to learn about how to Insert New Record with Radio Button, Checkbox, Date picker, Picklist, Long Text Area Using Lightning Component and Apex Controller.
We used the files in this example:-
submitFormCustomObjApp.app | Lightning Application | It is used for call the component to preview on browser. |
submitFormCustomObjCmp.cmp |
Lightning Component | It is used for create a custom form on lightning component . |
submitFormCustomObjCmpController.js |
JavaScript Controller File | It is used for click function for insert a form input value in database. |
submitFormCustomObjCmpHelper.js | JavaScript Controller HelperFile | It is used for fatch the picklist value from server of State and City |
submitFormCustomObjCmp.css | Component Style CSS | It is used for create custom Style CSS for alignment the form input field and section. |
submitFormCustomObjCmpCtrl.apxc | Apex Class Controller | It is used for insert input value into database server |
Live Demo
Other related post that would you like to learn in LWC
Step 1:- Create Lightning Application : submitFormCustomObjApp.app
From Developer Console >> File >> New >> Lightning Application
submitFormCustomObjApp.app [Component Application File]
1 2 3 |
<aura:application extends="force:slds"> <c:submitFormCustomObjCmp/> </aura:application> |
Step 2:- Create Lightning Component : submitFormCustomObjCmp.cmp
From Developer Console >> File >> New >> Lightning Component
submitFormCustomObjCmp.cmp [Lightning Component File]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
<aura:component controller="submitFormCustomObjCmpCtrl" implements="force:appHostable,flexipage:availableForAllPageTypes,flexipage:availableForRecordHome,force:hasRecordId,forceCommunity:availableForAllPageTypes,force:lightningQuickAction" access="global" > <aura:attribute name="newStudent" type="NewStudent__c" default="{'sobjectType' : 'NewStudent__c'}"/> <aura:attribute name="cityListStr" type="string[]" /> <aura:attribute name="stateListStr" type="string[]" /> <aura:handler name="init" value="{!this}" action="{!c.doInit}"/> <div class="slds"> <div class="slds-grid slds-wrap"> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">Student Name</label> <ui:inputText class="slds-input" aura:id="studentName" value="{!v.newStudent.Name}"/> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">Email</label> <ui:inputEmail class="slds-input" aura:id="emailId" value="{!v.newStudent.Email__c}"/> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">State</label> <div class="slds-form-element__controller"> <ui:inputSelect class="slds-select" aura:id="stateName" change="{!c.changeStateName}" value="{!v.newStudent.State__c}"> <ui:inputSelectOption text="--None--" /> <aura:iteration items="{!v.stateListStr}" var="stateVal"> <ui:inputSelectOption text="{!stateVal}" /> </aura:iteration> </ui:inputSelect> </div> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div aura:id="idSearchboxProductionExecutives" class="slds-form-element slds-is-required"> <label class="slds-form-element__label">City</label> <div class="slds-form-element__controller"> <ui:inputSelect class="slds-select" aura:id="cityName" change="{!c.changeCityName}" value="{!v.newStudent.City__c}"> <ui:inputSelectOption text="--None--" /> <aura:iteration items="{!v.cityListStr}" var="cityVal"> <ui:inputSelectOption text="{!cityVal}" /> </aura:iteration> </ui:inputSelect> </div> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <div class="slds-form-element__controller"> <lightning:input type="date" name="dateOfBirth" aura:id="dateOfBirth" value="{!v.newStudent.DateOfBirth__c}" label="Date Of Birth" labelClass="slds-form-element__label"/> </div> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">Gender</label> <div class="slds-form-element__controller"> <div class="slds-grid slds-wrap slds-m-bottom--small"> <label class="slds-radio"> <input type="radio" id="maleOption" class="slds-m-right--medium" name="options" value="Male" checked="{!equals(v.newStudent.Gender__c,'Male')}" onclick="{!c.setGenderValue}"/> <span class="slds-radio--faux"></span> <span class="slds-form-element__label"> Male</span> </label> <label class="slds-radio"> <input type="radio" id="femaleOption" name="options" value="Female" checked="{!equals(v.newStudent.Gender__c,'Female')}" onclick="{!c.setGenderValue}"/> <span class="slds-radio--faux"></span> <span class="slds-form-element__label"> Female</span> </label> </div> </div> </div> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">Is Married?</label> <div class="slds-form-element__controller"> <lightning:input type="checkbox" aura:id="checkbox" name="IsMarried" onchange="{!c.onCheck}"/> </div> </div> <aura:if isTrue="{!v.newStudent.IsMarried__c}"> <div class="slds-form-element slds-is-required slds-m-top--small"> <label class="slds-form-element__label">Spouse Name</label> <ui:inputText class="slds-input" aura:id="spouseName" value="{!v.newStudent.SpouseName__c}" /> </div> </aura:if> </div> <div class="slds-col--padded-large slds-large-size--6-of-12 slds-medium-size--6-of-12 slds-small-size--12-of-12 slds-x-small-size--12-of-12 slds-m-top--small"> <div class="slds-form-element slds-is-required"> <label class="slds-form-element__label">Address</label> <ui:inputTextArea aura:id="address" class="slds-textarea" value="{!v.newStudent.Address__c}" rows="2"/> </div> </div> </div> <div class="slds-text-align--center slds-m-top--medium slds-m-bottom--medium"> <button class="slds-button slds-button--brand" onclick="{!c.submitAction}">Submit</button> </div> <br/> </div> </aura:component> |
Step 3:- Create Lightning Component : submitFormCustomObjCmpController.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Controller
submitFormCustomObjCmpController.js [JavaScript Controller]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
({ doInit:function(component, event, helper){ helper.cityPickListView(component); helper.statePickListView(component); }, submitAction : function(component, event, helper) { var action = component.get("c.newStudentMethod"); var newStudent = component.get('v.newStudent'); var checkbox = component.find('checkbox').get('v.checked'); var validate = true; var studentName = component.find('studentName'); var studentNameVal = component.find('studentName').get('v.value'); var emailVal = component.get('v.newStudent.Email__c'); if($A.util.isUndefinedOrNull(studentNameVal) || $A.util.isUndefined(studentNameVal) || $A.util.isEmpty(studentNameVal)){ studentName.set("v.errors",[{message:"Please select required field"}]); validate = false; }else{ studentName.set("v.errors",null); } if(validate){ action.setParams({"studentRecId":newStudent}); action.setCallback(this, function(response){ var state = response.getState(); if(state == "SUCCESS"){ var result = response.getReturnValue(); //alert('result ' + result); component.set('v.newStudent.Name',''); component.set('v.newStudent.Email__c',''); component.set('v.newStudent.State__c','--None--'); component.set('v.newStudent.City__c','--None--'); component.set('v.newStudent.DateOfBirth__c',''); component.set('v.newStudent.SpouseName__c',''); component.set('v.newStudent.Address__c',''); component.set('v.newStudent.Gender__c',null); component.find('checkbox').set('v.checked',false); /* var toastEvent = $A.get("e.force:showToast"); toastEvent.setParams({ "title": "Success!", "type":'success', "message": "The record has been updated successfully." }); toastEvent.fire(); */ alert('Record saved successfully'); } }); $A.enqueueAction(action); } }, changeCityName:function(component, event, helper){ var cityName = component.find('cityName').get('v.value'); component.set('v.newStudent.City__c',cityName); }, changeStateName:function(component, event, helper){ var stateName = component.find('stateName').get('v.value'); component.set('v.newStudent.State__c',stateName); }, setCheckBoxValue: function(component,event) { var val = event.currentTarget.value; component.set("v.newStudent.IsMarried__c",val); }, onCheck: function(component,event) { var checkbox = component.find('checkbox').get('v.checked'); component.set("v.newStudent.IsMarried__c",checkbox); }, setGenderValue: function(component,event) { var val = event.currentTarget.value; //alert(val); component.set("v.newStudent.Gender__c",val); }, }) |
Step 4:- Create Lightning Component : submitFormCustomObjCmpHelper.js
From Developer Console >> File >> New >> Lightning Component >> JavaScript Helper
submitFormCustomObjCmpHelper.js [JavaScript Helper File]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
({ cityPickListView : function(component, event, helper) { var action = component.get("c.pickList"); action.setParams({"obj":"NewStudent__c","str":"City__c"}); action.setCallback(this, function(response){ var state = response.getState(); if(state=="SUCCESS"){ var result = response.getReturnValue(); component.set('v.cityListStr',result); } }); $A.enqueueAction(action); }, statePickListView : function(component, event, helper) { var action = component.get("c.pickList"); action.setParams({"obj":"NewStudent__c","str":"State__c"}); action.setCallback(this, function(response){ var state = response.getState(); if(state=="SUCCESS"){ var result = response.getReturnValue(); component.set('v.stateListStr',result); } }); $A.enqueueAction(action); }, }) |
Step 5:- Create Lightning Component Style: submitFormCustomObjCmp.css
From Developer Console >> File >> New >> Lightning Component >> Component Style CSS
submitFormCustomObjCmp.css [Style CSS]
1 2 3 4 5 6 7 8 9 |
.THIS { background:#fff !important; } .THIS .slds-input.has-error, .THIS .slds-select.has-error { background-color: rgb(255, 255, 255); border-color: rgb(194, 57, 52); box-shadow: rgb(194, 57, 52) 0 0 0 1px inset; background-clip: padding-box; } |
Step 6:- Create Apex Class : submitFormCustomObjCmpCtrl
From Developer Console >> File >> New >> Apex Class
studentInfoCtrl.apxc [Apex Class Controller]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
public class submitFormCustomObjCmpCtrl { @AuraEnabled public static void newStudentMethod(NewStudent__c studentRecId){ upsert studentRecId; } @AuraEnabled public static string newStudentInsrt(string nameStr, string emailStr){ NewStudent__c stdntNameStr = new NewStudent__c(); List<NewStudent__c> stdntNameList=[Select Id, Name From NewStudent__c Where Name =: nameStr]; if(stdntNameList.size() > 0){ return 'Duplicate name Not Allow'; }else{ stdntNameStr.Name=nameStr; stdntNameStr.Email__c=emailStr; insert stdntNameStr; return 'Inserted successfully'; } } @AuraEnabled public static List<String> pickList(String obj, String str) { List<String> regList = new List<String>(); Schema.DescribeFieldResult plistvalues = Schema.getGlobalDescribe().get(obj).getDescribe().fields.getMap().get(str).getDescribe(); for(PicklistEntry ent:plistvalues.getpicklistvalues()) { regList.add(ent.getLabel()); } return regList; } } |
Further post that would you like to learn
nice post thanks for the information
Hii, Great thanks for sharing awesome information. I really love to reed your blogs.
You’re a beautiful inspiration. It really helps me in any situation. Where I stuck. Many of my friends told me to comment there post but I stuck what I should comment. Finally I got your post it always help me. Thanks for the lovely post.