い微风ァ飘叶 发表于 2014-5-19 16:53:43

表单验证,自定义规则问题

问题一:自定义规则callback_function 调用失败
      
   public function index(){
                $this->load->helper(array('form', 'url'));
                $this->load->library('form_validation');
                $this->form_validation->set_rules('username', 'Username', 'callback_username_check');
                if ($this->form_validation->run() == FALSE)
                {
                        $this->load->view('demo_lyl/myform');
                }
                else
                {
                        $this->load->view('demo_lyl/formsuccess');
                }
                       
        }
       
       public function username_check()
       {
          
                  if (1==1)
                  {
                   $this->form_validation->set_message('username_check', 'error');
                   return FALSE;
                  }
                  else
                  {
                   return TRUE;
                  }
          
       }


   

回调函数无效,不会报错,请问是我哪里写错了?

问题二: 在验证规则是能否用 正则表达式
比如:$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length|max_length|xss_clean');

这里验证username不得小于5大于12   能否直接用正则 /\w/   这样处理呢?是不是一定要在回调函数里处理?有单独的规则类似(min_length[]):如preg_match[规则]这样的吗?

欢迎各种赐教啊

い微风ァ飘叶 发表于 2014-5-20 11:05:10

第一个问题解决了,是公司的项目把CI重新定义了,继承的是MX_Controller
加一行$this->form_validation->CI =& $this;搞定问题=。=

真郁闷。
然后CI的表单验证类,在控制器里面设置set_rules,就会不在加载config文件下的设置的规则?这样设置了多条公共规则,用的时候突然有一条要加新规则就等全部重写规则?不能只修改这一条,剩下的继承config文件下设置的规则吗?

feimengv 发表于 2014-5-20 15:36:57

既然使用CI建议使用CI的规则来书写,否则就没有意义了
页: [1]
查看完整版本: 表单验证,自定义规则问题