使用JQuery提交PHP Codeigner表单


PHP Codeigniter form submit using JQuery

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

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

但是,如果我使用提交按钮来提交表单,那么代码点火器表单验证方法就可以完美地工作。

如果我需要通过jquery提交表单并使用codeigner表单验证方法,请告诉我该怎么办。

请找到以下代码:

登录表单:

<?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函数点击"链接"提交表单:

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

控制器功能:

公共函数login_form(){$this->load->helper(数组('form','url'));$this->load->library('form_validation');$data['title']='登录';$data['errorMessage']=";$this->form_validation->set_rules('user-name','Email','required');$this->form_validation->set_rules("密码"、"密码"answers"必需");if($this->form_validation->run()==FALSE){$this->load->view('templates/header',$data);$this->load->view('login',$data);$this->load->view('templates/footer');}其他的{$this->load->view('templates/header',$data);$this->load->view('templates/menu');$this->load->view('index',$data);$this->load->view('templates/footer');}}

在这里,如果我点击表单的"提交"按钮,那么代码点火器验证适用于用户名和密码字段。但如果我点击id="login-Submit"的链接,它就会调用jquery函数,表单就会被提交。但这次代码点火器验证不适用于用户名或密码字段。

我需要通过链接提交表格,代码点火器验证功能应该可以实现这一点。

提前感谢。。。。。

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

我以前也遇到过这种情况,在我看来,在点击事件中使用.submit()并返回false来停止锚的默认行为在某个地方发生了冲突。

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

$("#login-submit")。点击(函数(e){e.preventDefault();$('#login-form').submit();});

感谢

之所以会发生这种情况,是因为它在单击按钮时一直调用函数。你需要停止这种行为。

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