自定义验证规则:
大多数时候我们使用QuickForm自带的验证规则就已经足够了,但如果有时我们需要的数据格式比较特殊那怎么办呢? QuickForm允许你自定义验证规则。
下面的例子中,我们增了一条自定义的规则:用户名必须为Haohappy。
CustomValidation.php
<?
require_once( "HTML/QuickForm.php" );
$form = new HTML_QuickForm ( 'frmTest' , 'post' );
$form -> addElement ( 'header' , 'header' , ' 请登录 ' );
$form -> addElement ( 'text' , 'name' , ' 用户名: ' );
$form -> addElement ( 'password' , 'password' , ' 密码: ' );
$form -> addElement ( 'submit' , '' , ' 提交 ' );
// 加入三条验证规则
$form -> addRule ( 'name' , ' 用户名不能为空! ' , 'required' );
$form -> addRule ( 'name' , ' 用户名必须为 3 位以上字母或数字 ' , 'minlength' , 3 );
$form -> addRule ( 'password' , ' 密码不能为空! ' , 'required' );
$form -> registerRule ( 'Haohappy_only' , 'function' , 'check_haohappy' );
$form -> addRule ( 'name' , ' 用户名必须为 Haohappy' , 'Haohappy_only' );
if ( $form -> validate ()) {
$form -> process ( 'say_hello' );
} else {
$form -> display ();
}
function say_hello ( $data ) {
print 'Hello, ' . $data [ 'name' ];
print '<BR>' ;
print 'Your password is ' . $data [ 'password' ];
}
function check_haohappy ( $element_name , $element_value ) {
if ( $element_value == 'Haohappy' ) {
return true ;
} else {
return false ;
}
}
?>
效果如图:

你应该注意到了,代码中我们新增了以下:
$form -> registerRule ( 'Haohappy_only' , 'function' , 'check_haohappy' );
$form -> addRule ( 'name' , ' 用户名必须为 Haohappy' , 'Haohappy_only' );
我们新注册了一个名为“Haohappy_only”的验证规则,并指定这个验证由函数(function) check_haohpapy()来执行。
再接下来我们定义一个check_haohpapy()函数,当用户名为Haohappy时返回true,当不为Haohappy时返回false。
function check_haohappy ( $element_name , $element_value ) {
if ( $element_value == 'Haohappy' ) {
return true ;
} else {
return false ;
}
}

|