【问题标题】:codeigniter validation not working in bootsrap modal windowcodeigniter 验证在引导模式窗口中不起作用
【发布时间】:2014-04-06 13:01:20
【问题描述】:

我正在尝试让验证类在引导模式窗口中的 codeigniter 中工作。但是,form-open 函数看不到控制器中包含代码的函数。

这是模态形式:

<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');               
    }
}

【问题讨论】:

  • 您通过使用 form_open() 打开一次然后在下一行使用 HTML 再次打开它来复制
    标签。不管发生什么,我知道仇恨不对。

标签: php jquery codeigniter twitter-bootstrap


【解决方案1】:

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

来自Codeigniter docs

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>

包含您的字段的第二个&lt;form&gt; 元素没有任何操作,因此当您点击提交时它不会与您的控制器对话。删除 HTML 中的 &lt;form&gt;&lt;/form&gt; 并告诉我们具体情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多