【发布时间】:2013-04-01 10:57:28
【问题描述】:
当验证失败时,我在 CodeIgniter 中保留表单值时遇到了一个奇怪的错误。 我在一个表单中使用了许多字段,其中一个是电子邮件。
我已经实现了电子邮件的验证规则如下:
$this->form_validation->set_rules('email','E-Mail',
'trim|required|xss_clean|is_unique[user.user_email]|callback_validateEmail');
validateEmail函数如下:
function validateEmail($email){
$this->load->helper('email');
if((!valid_email($email))){
$this->form_validation->set_message('validateEmail',
'The E-Mail you entered is invalid');
return false;
}
}
在表单中,我在电子邮件字段中使用以下代码:
<td align="left">
<input type="text" name="email" id="email"
value="<?php echo set_value('email');?>">
</td>
发生的情况是,当用户输入无效的电子邮件值时,电子邮件值会被保留,例如 "abc123" 或 "abc123@" 。但是当用户输入正确的电子邮件地址时,例如“abc@yahoo.com”,并且由于其他字段中的错误而导致表单验证失败,电子邮件字段的值不会被保留并且它会消失。
我不知道为什么会失败。有人可以给点灯吗?
提前感谢您!
【问题讨论】:
-
CodeIgniter 默认在表单验证库中内置了
valid_emailrule -- 无需回调。
标签: php codeigniter validation codeigniter-2