代码点火器验证在 bootsrap 模式窗口中不起作用


codeigniter validation not working in bootsrap modal window

我正在尝试让验证类在引导模式窗口中的代码点火器中工作。但是,窗体打开函数看不到控制器中包含代码的函数。

这是模态形式:

<div class="modal fade" id="login" tabindex="-1" aria-labelledby="modalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
        <h4 class="modal-title" id="myModalLabel">Login</h4>
      </div>
      <div class="modal-body">
        <?php echo validation_errors();?>
        <?php echo form_open('Site/login_validation');?>
        <form>
          <div class="input-group">
            <span class="input-group-addon"></span>
            <input type="text" name="email" class="form-control" placeholder="Email">
          </div></br>
          <div class="input-group">
            <span class="input-group-addon"></span>
            <input type="text" name="password" class="form-control" placeholder="Password">
          </div></br>
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
          <button type="submit" value="login" class="btn btn-primary">Login</button>
          </br>
        </form>
        <?php echo form_close();?>
        <div class="modal-footer">
          <a href="#" >Forgot your password</a>
        </div>
      </div>
    </div>
  </div>
</div>  

这是控制器中的表单:

public function login_validation(){
    $this->load->helper(array('form','url'));
    $this->load->library('form_validation');
    $this->form_validation->set_rules('email','','required');
    $this->form_validation->set_rules('password','','required');
    if ($this->form_validation->run() == false){
        $this->load->view('view_index');
    }else {
        redirect('Site/view_member');               
    }
}

正如jcorry指出的那样,您正在复制<form></form>标签。如果您使用的是form_open()form_close(),则无需将它们包含在视图 html 中。

从代码点火器文档中:

form_open() 使用根据配置首选项构建的基本 URL 创建一个打开表单标记

form_close() 生成结束标记。

我怀疑不正确的嵌套会混淆您的浏览器,它正在尝试关闭标签本身。如果您查看源代码,您可能会看到类似以下内容:

<form action="Site/login_validation">
</form><!-- This closing tag added automatically by your browser -->
<form>
    <!-- your form fields ... -->
</form>
</form>

第二个包含字段的 <form> 元素没有操作,因此当您点击提交时,它不会与您的控制器通信。删除 HTML 中的<form></form>,让我们知道情况如何。