我有一个简单的表单,其中手机号码的输入字段被提供给用户,在提交时,它通过验证规则进行验证,然而,尽管在输入标签中预先填充了值,但仍会引发所需的字段错误。
[$this->form_validation->set_rules('mobile','Mobile','trim|required|numeric|exact_length[10]|callback_checkMobile');][1]
public function checkMobile($number){
if ($e_name=$this->HomeModel->isDuplicateMobile($number)) {
if ($this->session->userdata('admin_name')) {
if ($e_name!=$this->session->userdata('admin_name')) {
$this->form_validation->set_message('checkMobile','The {field} Number already registered to '.$e_name.'.');
return false;
}
} elseif ($this->session->userdata('user_name')) {
if ($e_name!=$this->session->userdata('user_name')) {
$this->form_validation->set_message('checkMobile','The {field} Number already registered to '.$e_name.'.');
return false;
}
}
} else {
return true;
}
}
<input class="<?=(form_error('mobile'))?'is-invalid':'is-valid'?> form-control" type="text" name="mobile" value="<?=set_value('mobile',$e_mobile)?>">
使用这个"is_unique">
$this->form_validation->set_rules('mobile','Mobile','trim|required|numeric|is_unique[table.fieldName]');
或
if($this->input->post('mobile') != $original_value) {
$is_unique = '|is_unique[table.fieldName]'
} else {
$is_unique = ''
}
$this->form_validation->set_rules('user_name', 'User Name', 'required|trim|xss_clean'.$is_unique);