jQuery form submit

后端 未结 4 1984
终归单人心
终归单人心 2020-12-15 08:49

My goal is: When for is submitted:

  • a validation on form is made : OK
  • an ajax is called to see that username and password do match : OK<
相关标签:
4条回答
  • 2020-12-15 09:32

    The return false is blocking the default form submit action. You have either to return true from the form1Submit() function to let the default form submit action do its job, or to add another $.post() inside the else which submits the data to the form asynchronously, if your intent was to do it using ajaxical powers.

    0 讨论(0)
  • 2020-12-15 09:33

    You can call the native submit event, so do this:

    $('#form1').submit(form1Submit);
    

    Then in your post callback do this:

    $.post("check.php", { username: username, password:password }, function(data) {
        if (data=="ko") {
            alert('bad password');
        } else {
            this.submit();
        }
    });
    

    The this.submit() isn't calling he jQuery .submit() trigger function, but rather the native <form> .submit() function.

    0 讨论(0)
  • 2020-12-15 09:33
    function form1Submit(ev, ok) {
    
      ev.stopPropagation();
    
      ok = (typeof ok != 'undefined') ? ok : false;
    
      if (ok)
        return true;
    
      var username=$('#username').val(),
          password=$('#password').val(),
          selfForm = this;
    
      if (username.length < 2)
        return false;
    
      if (password.length < 2)
        return false;
    
      $.post("check.php", { username: username, password:password }, function(data) {
        if (data=="ko") {
          alert('bad password');
        } else {
          $(selfForm).trigger('submit', [true]); // again submit but with ok parameter
        }
      });
    
      return false;
    }
    
    function init() {
       $('#form1').bind('submit', form1Submit);
    }
    
    $(document).ready(function(){
        init();
    })
    
    0 讨论(0)
  • 2020-12-15 09:42

    The problem is that form1Submit always returns false.

    0 讨论(0)
提交回复
热议问题