| heckUsername($sender, $param)
{
//assume the username can be checked against a database
//or some other datasource. For the example, we will
//just do a simple comparison. If the value equals "admin"
//the validation failed.
if($param->value == ''''admin'''')
$param->isValid = false;
}
/**
* Overrides parent implementation by registering a Javascript
* for custom validation.
* @param TEventParameter the event parameter
*/
function onPreRender($param)
{
parent::onPreRender($param);
$page=$this->getPage();
//javascript checkUsername, Lets assume that XMLHttpRequest
//can be used to check the username. For the example,
//we will just do a simple comparison in javascript
$jscript="
function checkUsernameJS(sender, parameter)
{
if(parameter == ''''admin'''')
return false;
else
return true;
}
";
$page->registerEndScript(''''checkUsername'''',$jscript);
}
}
?>
ValidatorExample.tpl <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Prado Validation Example</title>
<style type="text/css">
/*<![CDATA[*/
body
{
padding: 2em;
font-family: Georgia,"Times New Roman", Times, serif;
}
.msg
{
font-size: 1.2em;
font-weight: bold;
margin-bottom: 1em;
}
.buttons
{
padding: 2em;
text-align: center;
width: 20em;
}
label
{
display: block;
margin-top: 1.5em;
font-size: 0.75em;
font-weight: bold;
padding-bottom: 0.2em;
}
legend
{
padding: 0 0.5em;
}
fieldset
{
padding: 1em 2em 2em 2em;
width: 20em;
}
span
{
font-size: 0.75em;
}
.msg
{
display: block;
}
/*]]>*/
</style>
</head>
<body>
<h2>New User Registration</h2>
<com:TForm >
<fieldset>
<legend>Login details (all fields are required)</legend>
<label>Username:</label>
<com:TTextBox ID="Username" /> <br />
<com:TRequiredFieldValidator
ControlToValidate="Username"
Display="Dynamic"
ErrorMessage="Please choose a username." />
<com:TCustomValidator
ControlToValidate="Username"
ClientValidationFunction="checkUsernameJS"
OnServerValidate="checkUsername"
Display="Dynamic"
ErrorMessage="Username exists, please try a different username." />
<label>Email Address:</label>
<com:TTextBox ID="Email" /> <br />
<com:TRequiredFieldValidator
ControlToValidate="Email"
Display="Dynamic"
ErrorMessage="Please enter your email address." />
<com:TEmailAddressValidator
ControlToValidate="Email"
Display="Dynamic"
ErrorMessage="Please check your email address for typing errors." />
<label>Password:</label>
<com:TTextBox ID="Password" TextMode="Password" /> <br />
<com:TRequiredFieldValidator
ControlToValidate="Password"
Display="Dynamic"
ErrorMessage="Please choose a password with 6 or more characters." />
<com:TRegularExpressionValidator
ControlToValidate="Password"
RegularExpression="[\w]{6,}"
Display="Dynamic"
ErrorMessage="Your password must have at least 6 characters." />
<label>Password Again:</label>
<com:TTextBox ID="PasswordCheck" TextMode="Password" /> <br />
<com:TRequiredFieldValidator
ControlToValidate="PasswordCheck"
Display="Dynamic"
ErrorMessage="Please re-enter your password." />
<com:TCompareValidator
ControlToValidate="PasswordCheck"
ControlToCompare="Password"
Display="Dynamic"
ErrorMessage="Your password entries did not match." />
</fieldset>
<div class="buttons">
<com:TButton Text="Register New User" OnClick="registerUser" />
</div>
<com:TLabel ID="msg" class="msg"/>
</com:TForm>
</body>
</html>
参考资料 - PRADO component framework for PHP 5 http://www.xisc.com/
- Web Form Validation in ASP.NET http://tinyurl.com/58nhy
- Regular Expression Library http://regexlib.com/
- Easier form validation with PHP http://tinyurl.com/69eru
上一页 [1] [2] [3] |