运行 bootstrap 验证器与 ajax 一起出现问题

Having issues while running bootstrap validator along with ajax

我有一个注册表单,我想在上面申请 bootstrap validator 如果表格填写成功,它应该转到 ajax 部分,后端脚本将 运行 和数据被提交。

表格

<form data-toggle="validator" role="form"  id="signup-form" method="post">

    <input type="text" class="form-control" placeholder="Name" name="cname" id="cname" required>

    <input id="email" type="email" class="form-control" placeholder=" email" name="email" data-error="email address is invalid" required>

     <input type="password" class="form-control out-box" placeholder="Password" name="password" id="password" required>

    <button type="submit" class="btn btn-primary" id="submit_form">SIGN UP</button>

</form>

Ajax代码

$("#submit_form").click(function()
  {
    var cname = $("#cname").val();
    var email = $("#email").val();
    var password = $("#password").val();
    var dataString = 'cname='+ cname + '&email='+ email + '&password='+ password ;

    $.ajax({
      type: "POST",
      url: "<?php echo base_url(); ?>/student/register",
      data: dataString,
      cache: false,
      success: function(result){
        console.log(result);     
    }});
    return false;
  });

问题是,如果表单为空或有任何问题,我点击提交按钮,问题区域会突出显示,因为它在 bootstrap 验证器中出现,但在那之后 ajax 代码是也执行了。

我希望 ajax 代码只应 运行 当所有验证都已填写并且表单没有问题时。

试试下面的方法。

$('#signup-form').validator().on('submit', function (e) {
  if (e.isDefaultPrevented()) {
    // handle the invalid form...
  } else {
    // everything looks good!
     var cname = $("#cname").val();
    var email = $("#email").val();
    var password = $("#password").val();
    var dataString = 'cname='+ cname + '&email='+ email + '&password='+ password ;

    $.ajax({
      type: "POST",
      url: "<?php echo base_url(); ?>/student/register",
      data: dataString,
      cache: false,
      success: function(result){
        console.log(result);     
    }});
    return false;
  }
})