In addition to native ColdFusion input validation using the validate attribute of the cfinput and cftextinput tags, the following tags support the onvalidate attribute, which lets you specify a JavaScript function to handle your cfform input validation:
cfgrid
cfinput cfslidercftextinput cftree
ColdFusion passes the following arguments to the JavaScript function you specify in the onvalidate attribute:
For example, if you code the cfinput tag as the following:
<cfinput type="text"
... <!--- Do not include () in JavaScript function name ---> onvalidate="handleValidation" ... >
You define the JavaScript function as the following:
<script>
<!--
function handleValidation(form_object, input_object, object_value) {
...
}
//-->
</script>
The onerror attribute lets you specify a JavaScript function to execute if a validation fails. For example, if you use the onvalidate attribute to specify a JavaScript function to handle input validation, you can also use the onerror attribute to specify a JavaScript function to handle a failed validation (that is, when onvalidate returns a false value). If you use the validate attribute, you can also use the onerror attribute to specify a JavaScript function handle validation errors. The following cfform tags support the onerror attribute:
cfgrid
cfinputcfselect cfslidercftextinputcftree
ColdFusion passes the following JavaScript objects to the function in the onerror attribute:
form_object
input_objectobject_valueThe following example validates an e-mail entry. If the string is invalid, it displays a message box. If the address is valid, it redisplays the page. To be valid, the e-mail address must not be an empty string, contain an at sign (@) that is at least the second character, and contain a period (.) that is at least the fourth character.
<html>
<head>
<title>JavaScript Validation</title>
<script>
<!--
function testbox(form, ctrl, value) {
if (value == "" || value.indexOf ('@', 1) == -1 ||
value.indexOf ('.', 3) == -1)
{
return (false);
}
else
{
return (true);
}
}
//-->
</script>
</head>
<body>
<h2>JavaScript validation test</h2>
<p>Please enter your email address:</p>
<cfform name="UpdateForm" preservedata="Yes"
action="validjs.cfm" >
<cfinput type="text"
name="inputbox1"
required="YES"
onvalidate="testbox"
message="Sorry, your entry is not a valid email address."
size="15"
maxlength="30">
<input type="Submit" value=" Update... ">
</cfform>
</body>
</html>
The following table describes the highlighted code and its function: