on function jquery return false

时间:2015-02-06 14:29:39

标签: jquery html codeigniter

我正在论坛上工作。我想在客户端验证表单,但我很困惑,在提交表单之前验证。

我在函数上使用但是当它返回false时我想向用户显示一些内容。

以下是我的观点:

<?php
if($this->session->userdata('email')){
echo form_open('forum/reply');//session form start here
?>
    <?php echo validation_errors(); ?>
<div class="media">
  <div class="media-left media-middle pull-left">
    <a href="#">
      <img class="media-object" src="<?php echo base_url('assets/pics') ?>/<?php echo $this->session->userdata('profile_pic') ?>" alt="<?php echo $row->first_name . nbs(2) . $row->last_name ?>">
    </a>
  </div>
  <div class="media-body">
    <textarea name="message"  class="text_reply"></textarea>
 <?php 
 $submit = array(
    'name' => 'reply' ,
    'value' => 'reply' ,
    'id' => 'reply' ,
    'class'=> 'btn btn-primary' 

     );
    echo form_hidden('id',$id);
    echo form_submit($submit);
    echo form_close ();?>
    </div>
</div>
<?php }//session form ends here
 ?>

Javascript代码:

$('form').on('submit', function() {
    var reply = $ ('.text_reply').val(); 
    if(reply != ''){

    }else{
        return false;
    }


});

我的控制器:

public function reply(){


    $this->form_validation->set_rules('reply', 'Answer', 'required');
    if ($this->form_validation->run() == FALSE)
    {
        $this->topic();
    }
    else
    {
        $data['topic_id'] = $this->input->post('id');
        $data['reply_text'] = $this->input->post('message',TRUE);
        $data['user_id'] = $this->session->userdata('u_id');
        $data['reply_date'] = date('M/d/y');
        $query = $this->mod_forum->reply($data);
        if ($query) {
            $this->session->set_flashdata('t_id', $this->input->post('id'));

            redirect('forum/topic');
        } else {
            echo 'something woring please contact admin.';
        }


    }   

}

1 个答案:

答案 0 :(得分:0)

首先,我要确保您阻止表单提交

$('form').on('submit', function(e) {
e.preventDefault();
...

然后你需要将你的返回false移动到if块,因为你在那里检查它是否为空

if(reply == ''){
    alert('empty');
    return false; 
}else{
    alert('not empty');
}

另外注意在if语句中我添加了另一个=符号,一个=是设置值的方式,==是比较两个值的方式

这是一个codepen,所以你可以看到它正常工作

http://codepen.io/anon/pen/bNYqJK