在验证失败时,我在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”,并且由于某些其他字段中的错误而导致表单验证失败,则不会保留电子邮件字段的值并且它会消失。
我不知道为什么会失败。有人可以请一些光吗?
提前谢谢!
答案 0 :(得分:1)
对于有效的电子邮件,该函数不会返回true。
当电子邮件有效时,请尝试返回true。
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;
}
return true;
}