我在form_validation上显示来自set_message的错误消息时遇到问题。请参阅下面代码的某些部分。
以下是我的观点:
<div class="uk-margin">
<?php if (form_error('name')){ ?>
<span class="reg_error"><?php echo form_error('name'); ?></span>
<?php } ?>
<div class="uk-form-controls">
<input class="uk-input" id="name" name="name" type="text" placeholder="Full Name">
</div>
</div>
这是我的控制器:
$this->form_validation->set_rules('name', 'Full Name', 'trim|callback_alpha_space');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('password', 'Password', 'trim|required');
if ($this->form_validation->run() == FALSE){
$this->load->view('register');
}else{
....
}
我在控制器下也有一个功能:
function alpha_space($str){
if (!$str){
$this->form_validation->set_message('alpha_space', 'The {field} field is required.');
return FALSE;
}else if (!preg_match("/^([-a-z_ ])+$/i",$str)){
$this->form_validation->set_message('alpha_space', 'The {field} field can not contain number or special characters.');
return FALSE;
}else{
return TRUE;
}
}
发生的事情是,规则正在运行,但某些消息未显示。感谢您对此的帮助。谢谢!
答案 0 :(得分:0)
在alpha_space函数中,检查preg_match函数。将“/”字符添加到REGEX的末尾,如下所示:'/^([-a-z_ ])+$/i/'