繁体   English   中英

PHP Codeigniter 表单提交使用 JQuery

[英]PHP Codeigniter form submit using JQuery

我是 PHP Codeigniter 框架的新手。 我正在设计一个使用链接的页面。 单击链接时,它会调用 jquery function,它通过 jquery 提交表单。我已经使用 codeigniter 表单验证方法进行服务器端验证,目前我已禁用客户端验证。

问题是在这个过程中通过jquery提交表单时,codeigniter表单验证方法不起作用。

但是,如果我使用提交按钮提交表单,那么 codeigniter 表单验证方法可以完美运行。

如果需要通过jquery提交表单,使用codeigniter表单验证方式,请指教怎么办。

请找到下面的代码:

登录表单:

<?php echo validation_errors(); ?>
<form name="login-form" id="login-form" method="post" action="<?php echo base_url();?>index.php/login/login_form" >
    <H2>Login</H2>
    <div id="login-box-name">
        Email:
    </div>
    <div id="login-box-field">
        <input name="user-name" id="user-name" class="form-login" title="Please Enter Correct User Name" value="" size="30" maxlength="2048" />
    </div>
    <div id="login-box-name">
        Password:
    </div>
    <div id="login-box-field">
        <input name="password" id="password" type="password" class="form-login" title="Please Enter Correct Password" value="" size="30" maxlength="2048" />
    </div>
    <br />
    <span class="login-box-options">
        <input type="checkbox" name="1" value="1" title="Want this computer to remember you!!"> Remember Me <a href="#" id="login-div-change">Forgot password?</a>
    </span>
    <br />
    <br />
    <a href="" id="login-submit">
        <img src="<?php echo base_url();?>assets/images/login-btn.png" width="110" height="40" style="margin-left:90px;" />
    </a>
    <input type="submit" name="submit" id="submit" value="Submit" />
</form>

jquery function 点击“链接”提交表格:


    $("#login-submit").click(function()
    {
    $('#login-form').submit();
    return false;
    });

Controller function:


    public function login_form()
    {

        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');
        $data['title'] = 'Log In';

        $data['errorMessage'] = '';
        $this->form_validation->set_rules('user-name', 'Email', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if ($this->form_validation->run() == FALSE)
        {
        $this->load->view('templates/header', $data);
        $this->load->view('login', $data);
        $this->load->view('templates/footer');
        }

        else
        {
        $this->load->view('templates/header', $data);
        $this->load->view('templates/menu');
        $this->load->view('index', $data);
        $this->load->view('templates/footer');
        }

    }

在这里,如果我点击表单的“提交按钮”,那么 codeigniter 验证适用于用户名和密码字段。但是如果我点击带有 id="login-submit" 的链接,那么它会调用 jquery function 和表单提交。但是这次 codeigniter 验证对用户名和密码字段不起作用。

我需要通过链接提交表格,codeigniter 验证 function 应该适用于此。

提前致谢.....

使用.preventDefault()而不是仅在锚点击事件上返回 false。

这以前发生在我身上,在我看来,在点击事件中使用.submit()并返回 false 以停止锚点的默认行为在某处存在冲突。

上面的代码工作正常。 实际上我在我的代码中犯了一个愚蠢的错误。 我为 jQuery 使用了以下代码,它现在正在运行。


    $("#login-submit").click(function(e) {
        e.preventDefault();
        $('#login-form').submit();
    });

谢谢

发生这种情况是因为它在单击按钮时一直调用 function。 你需要阻止它。

$("#login-submit").click(function(e){
 e.preventDefault();
 $('#login-form').submit();
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM