0

I've added a new custom field on web-to-lead form (consent to contact-picklist),I want a user to be able to submit only if consent to contact=yes, by default it will appear as 'NO' on the form. Any help would be really appreciated.

Code:

<li>
  Lead Consent to Contact: 
  <select id="00Nw0000003cnpk" name="00Nw0000003cnpk" title="Consent to Contact"> 
    <option value="No">No</option>
    <option value="Yes">Yes</option>
  </select>
</li><br/>
<input type="submit" name="submit"/><br/></ul> 
</div></form>
1

1 Answer 1

2

You can use client side scripting to validate the inputs. You can either use JavaScript or jQuery for this.

You can find the free jQuery Validation Plugin which can be used for validation at this link.

But in your case, it's a simple validation, you can achieve it using simple Javascript as well. You can refer this link to get started on this.

One more way is to create a validation rule on Lead in Salesforce, this will prevent invalid leads from being created, but Salesforce won't return anything in response, hence user won't know the outcome.


Update

Your javascript code that you provided in comments has error, hence it won't work.You will need to do 3 things in your web to lead form

Change the Id of the Lead Consent field in the generated html to something readable, but make sure that you are not changing the value of name attribute.

Replace this below line in web to lead html

<select id="00Nw0000003cnpk" name="00Nw0000003cnpk" title="Consent to Contact">

with

<select id="leadconsent" name="00Nw0000003cnpk" title="Consent to Contact">

Add this below script in the form tag

<script type='text/javascript'> 
    function ValidateForm() { 
        if (document.getElementById('leadconsent').value == 'No') { 
            alert("Please change value YES for consent to contact"); 
            return false; 
        } 
        return true; 
    } 
</script>

And lastly, add this validation method to form tag i.e.

replace the below code

<form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">

with

<form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST" onsubmit="return ValidateForm()">
8
  • +1 jQuery would definitely be overkill for such a simple project.
    – sfdcfox
    Commented May 14, 2019 at 14:41
  • Thanks Vijay, I'll try to find a validation rule using jQuery to see if it serve the purpose hoping that Salesforce visual page supports jQuery as we use VF page for web-to-lead form, and we want to stop form submission at user end so creating VR in salesforce may not the best option.
    – user30768
    Commented May 14, 2019 at 15:08
  • I would recommend you to use javascript rather then going for jQuery (Same has been recommended by @sfdcfox as well). Updated answer with a link to sample solution, you can get started with that. Commented May 14, 2019 at 15:17
  • <script language="JavaScript" type="text/javascript"> <script type='text/javascript'> function ValidateForm() { var helperMsg = ''; if (document.getElementById('Lead_Consent_to_Contact_c__c').value.length == 'No') { helperMsg += "Please change value YES for consent to contact \n\r"; } if (helperMsg.length > 0) { alert(helperMsg); return false; } return true; } </script>
    – user30768
    Commented May 15, 2019 at 10:28
  • 1
    @Inniboy Updated the answer with the script and other changes that are needed, make changes in your web to lead form as mentioned and it should work! Commented May 15, 2019 at 13:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .