当验证失败时,我在 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>
发生的情况是,当用户输入无效的 E-Mail 值(如 "abc123" 或 "abc123@" )时,将保留 E-Mail 值。但是,当用户输入正确的电子邮件地址时,例如“abc@yahoo.com”,并且由于其他字段中的错误而导致表单验证失败,则电子邮件字段的值不会被保留并消失。
我不知道为什么这会失败。有人可以请一些光吗?
先感谢您!