jQuery表单提交

wbgh16ku  于 2023-03-22  发布在  jQuery
关注(0)|答案(5)|浏览(175)

我的目标是:当提交时:

  • 对表单进行确认:* 好吧 *
  • 调用 AJAX 来查看用户名和密码是否匹配:* 好吧 *
  • 如果它们不匹配,则显示错误:* 好吧 *
  • 如果它们匹配,则确实提交表单:* 不好 *。

事实上,麻烦的是,我不能提交表单,因为上面有一个jquery提交事件!

function form1Submit() {
var username=$('#username').val();
var password=$('#password').val();
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');
        return false;
    } else {
    //to be done here !
    }
});
    return false;
}
function init() {
   $('#form1').submit(function(){
        return form1Submit();
    })
}
$(document).ready(function(){
    init();
})
olqngx59

olqngx591#

您可以调用本机提交事件,因此请执行以下操作:

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

然后在你的post callback中这样做:

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

this.submit()没有调用jQuery .submit()触发器函数,而是调用了原生的<form>.submit()函数。

cczfrluj

cczfrluj2#

return false阻塞了默认的表单提交操作。您可以从form1Submit()函数 * 或者 * 到return true,让默认的表单提交操作完成其工作,* 或者 * 在else中添加另一个$.post(),它将数据异步提交到表单,如果您的意图是使用ajaxical powers来完成它。

wljmcqd8

wljmcqd83#

问题是form1Submit总是返回false。

jjhzyzn0

jjhzyzn04#

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();
})
4ngedf3f

4ngedf3f5#

$(函数(){

$("#search_form").validate({
        rules: {
            class_id: {
                required:true,
            },
            section_id: {
                required:true,
            },
            period_id: {
                required:true,
            },
        },
        messages:{
            class_id: {
                required:'Class id is required',
            },
            section_id: {
                required:'Section id is required',
            },
            period_id: {
                required:'Month is required',
            }
        },
        submitHandler: function(form) {

           //Your ajax code
           return false;
       }
    });

});

相关问题