0

如果我们想同时包含 jQuery Validation 插件和代码点火器 form_validation 类,我们必须在 jQuery 验证脚本和 CodeIgniter form_validation 中定义验证规则。有没有办法在一个电话中混合两者。就像,我只想在 jQuery 或 CodeIgniter 中定义一次验证规则

jQuery:http
://docs.jquery.com/Plugins/Validation CodeIgniter http://codeigniter.com/user_guide/libraries/form_validation.html

现在处理:

//jQuery
$("#username").validate({
 debug: true
})

代码点火器:

//Code igniter
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');

1)在您的控制器中加载库。

$this->load->library('jquery_validation');

2)设置CodeIgniter标准验证规则(与form_validtion库相同的规则格式)。

$rules = array(
            array(
                 'field'   => 'username',
                 'label'   => 'Username',
                 'rules'   => 'required|min_length[2]'
              ),
           array(
                 'field'   => 'email',
                 'label'   => 'Email',
                 'rules'   => 'required|valid_email'
              ),
           array(
                 'field'   => 'url',
                 'label'   => 'URL',
                 'rules'   => 'required'
              )
       );

3) 设置错误信息。

$messages = array(
             'username'  => array( 'required'    => "Username is required",
                                   'min_length'  => "Please enter more then 2 char"
                                 ),

             'email'     => array( 'required'    => "Email is required",
                                   'valid_email' => "Please enter valid email"
                                 )
             );

4) 将验证规则和消息应用于库。

$this->jquery_validation->set_rules($rules);
$this->jquery_validation->set_messages($messages);

5) 生成Javascript验证码。

// pass css selector for your form to run method

$validation_script = $this->jquery_validation->run('#registration_form');

// echo $validation_script in your <script> tag

这是使用代码点火器验证定义添加 jquery 验证的方法。我的问题是获得一个验证库,该库使用此验证规则进行客户端和服务器端验证。

4

1 回答 1

1

jQuery 验证发生在客户端。

Codeigniter 验证发生在服务器上。

它们完全独立于彼此。如果您正确设置了规则,Codeigniter 验证甚至只会在 jQuery 验证由于某种原因没有发生的情况下才会发生。

于 2013-04-08T13:31:43.983 回答