Real-Time Validation uses the jQuery JavaScript framework to easily setup real-time validation for your web forms.
Background and Technical Requirements
This is meant as a very basic example for web developers to see how to setup the events and the CallBack function to handle the results and implement your own validation logic. The design is meant to be a basic, bare bones solutions so that it can be as flexible as needed and can then be integrated into any validation framework or setup chosen for the form.
As such, the example does not prevent the form from being submitted when validation fails. Additional logic and parameters for your form will need to be setup, depending on your situation, to prevent the form from submitting with invalid addresses.
Initial Setup
First you must log into Incindio (http://app.incindio.com) and register the domain name of the site hosting the form. To do this:
- Log into app.incindio.com
- Click the ‘Dashboard’ button
- Click the ‘Manage’ button with the gear next to Experian Data Quality
- Click the ‘RTValidation URLs’ button
- Select an Eloqua Account from the drop down menu
- Input the URL your form is hosted on in the New URL box (For example, if your form URL is “http://www.largecorporation.com/registerForConference” then register “largecorporation.com“)
- Click Submit
- The URL should now show up under the ‘Registered URLs’ list
This is how our system makes sure that no one else is trying to use your account to validate information on their own forms.
Setting up a form
After the domain has been registered within Incindio, then you can add the JavaScript code to your form.
The required library for the type of validation you want to include in your form must be included in the head of the HTML document, along with jQuery 1.5 or better. You can use the copies existing in your environment or from a CDN, but make sure to only include jQuery once before the callback setup, and only once in the page.
For Email Validation include the following lines in the <head> of the HTML document.
<script
type=
"text/javascript"
src=
"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"
></script>
<script type=
"text/javascript"
src=
"https://validation.incindio.com/Validation/EmailInclude"
></script>
The only other code required is including the code to wire up the validation event. The call only requires your Eloqua Company name, the service name you want to use for validation, and a callback function to handle the response from the Experian app.
For example, to validate a text field with the id of “Email”, the following code would be used:
<script type=
"text/javascript"
>
$(document).ready(function ()
{
$(
'#Email'
).ValidateEmail({
companyName:
'EloquaInstanceName'
,
service:
'FreshAddress'
,
callBack:function (data)
{
if
(!data.isValid && data.Status != 'exception' )
{
$(
'.ValidationStatus'
).append(
'Invalid: '
+ data.Status);
$(
'.ValidationStatus'
).show();
}
else
$(
'.ValidationStatus'
).hide();
}
})
});
</script>
To insert the results into your form, you would need to place a <div> with a class of “ValidationStatus” somewhere in your form. Such as:
<input type=
"text"
id=
"Email"
name=
"Email"
value=
""
/><br>
<div
class
=
"ValidationStatus"
style=
"display:none"
></div>
Available Results fields
The following fields are available to display with your validation results:
- Status. Whether or not the email could be registered. If valid email, value is true.
- StatusMessage. Description of the status (tables below include possible values)
- StatusCode. Code associated with the status (tables below include possible values)
- Success. If the request to validate the email was successful or not. Possible values: true, false
- isValid. If the email address was determined to be valid. Possible values: true, false
StatusCode values
Finding "V" (Valid)
Submitted email address is valid, properly constructed, and legitimate.
StatusMessage | StatusCode | Possible Suggestion? | Description |
valid | V | Yes | The email address passed the majority of our SafeToSend® process however it cannot be 100% confirmed as deliverable and thus is not subject to our deliverability guarantee. |
valid SafeToSend® | VS | No | The email address passed 100% of the SafeToSend® process. Subject to deliverability guarantee. |
customer override | CO | Yes | Comment applied to cases where a parameter has disabled a flagging feature that would have deemed the email address as blocked/invalid. |
client exception | CE | No | Email address matches an entry on client provided exception. |
Finding "W" (Warning)
Submitted address is flagged as a warning and should not be accepted
Comment | StatusCode | Possible Suggestion? | Description |
bad domain | DC | Yes | Email address is associated with a domain with inactive mail servers. |
bogus | XB | No | Email address with a restricted handle and/or domain which is a likely suspect for being a fake or undesirable entry. |
client restricted | XC | No | Email address matches an entry on client provided suppression. |
disposable | XD | Yes | Email address originates from a website that provides temporary email addresses. |
domain specific syntax error | XH | No | Email address failed a domain specific rule, e.g. gmail.com does not allow underscores in the address handle. |
EMPS suppression | XE | No | Email addresses belonging to DMA’s "Do Not Email List" (Electronic Mail Preference Service). Those who have registered have requested to be removed from national marketing lists. |
FCC wireless | XW | No | Email address originates from an FCC wireless domain. |
frequent complainer | XF | No | Email address owner is known to submit spam/abuse complaints. |
invalid email account | B | Yes | Email address failed AtData’s deliverability check. Our proprietary algorithm utilizes our knowledgebase of confirmed undeliverable email addresses and email specific activity to determine if the email address is valid and available to accept email. |
language | XL | No | Email address contains derogatory words. |
problematic | XP | Yes | Email address is considered as problematic – includes spamtraps and potentially toxic addresses. |
role account | XR | No | Email addresses such as sales@, info@ and webmaster@. |
Suspect | MR | No | Email address failed our manual review quality control process. (Managed Service Only) |
Finding "E" (Error)
Submitted email address contains an error and is invalid.
Comment | Comment_Code | Possible Suggestion? | Description |
missing @ |
A1 | Yes | Email address is missing the "@" sign. For example: "nemohotmail.com" |
missing username | A2 | No | Email address is missing the handle portion of the address. For example: "@hotmail.com" |
missing domain | A3 | No | Email address is missing the domain portion of the address. For example: "nemo@". |
multiple @ | A4 | Yes | Email address has multiple "@" signs. For example: "nemo@@hotmail.com". |
bad character | C1 | Yes | Email address has prohibited characters such as a bracket "["or other unusual characters. |
double .com | CC | Yes | Email address has multiple ‘.com’s at the end of the address. For example: "nemo@aol.com.com" |
bad top level domain | DT | Yes | Email address is missing the top domain, or the top level domain is invalid. |
bad length | LN | No | Email address has less than 6 characters or over 100 characters. |
contains multiple typos | ML | Yes | Email address does not meet RFC standards and/or has multiple errors. |
ends with period | P2 | Yes | Email address ends with a period – For example: "nemo@hotmail.com." |
double period in domain | P3 | Yes | Email address has multiple periods in the domain. For example: "nemo@hotmail..com" |
period following @ | P4 | Yes | Email address has a period after the '@' sign. For example: "nemo@.hotmail.com" |
starts with period | P5 | Yes | Email address starts with a period. For example: ".nemo@hotmail.com" |
Finding "D" (Duplicate)
Comment | Comment_Code | Possible Suggestion? | Description |
duplicate | DP | Yes | Email Address appears more than once on your list or within our suggestions. |
**see attached for a simple form that performs both Email and Phone validation as an example