如何进行仅将 jQuery 用于回调的老式 HTML 表单提交

How can I make an old-fashioned HTML form submission that uses jQuery only for the callback(s)?

本文关键字:HTML 表单提交 回调 用于 何进行 jQuery      更新时间:2023-09-26

因为我的整个页面都是一个基本的"姓名和电子邮件"注册表,我不明白为什么我不能做一个好的 ole-fashioned

    <form action="/Account/Register/" method="POST" id="registration-form">
        <fieldset class="form-group">
            <label for="name">Name</label>
            <input type="text" class="form-control" name="pname" id="name" placeholder="Example input">
        </fieldset>
        <fieldset class="form-group">
            <label for="email">Email Address</label>
            <input type="text" class="form-control" name="eaddr" id="email" placeholder="Another input">
        </fieldset>
        <button class="btn btn-primary" type="submit">Take Survey</button>
    </form>

这似乎是过度设计的定义

$.ajax({
    url  : '/Account/Register',
  method : 'POST',
  data   : { pname : $('input[name="pname"]').val(),
             eaddr : $('input[name="eaddr"]').val() },
});

毕竟,这就是form的用途!

但我确实希望从form的提交中得到一件事,那就是successerror回调。有没有办法以 HTML 方式提交该form并仍然连接回调?如果是这样,如何?

使用 $.submit(),这是你可以用 jQuery 完成的方式。正如其他评论者所写,你要么发布并刷新页面,要么使用 ajax:

$("#registration-form").submit(function(){
  $.ajax({
    url  : '/Account/Register',
    method : 'POST',
    data   : { pname : $('input[name="pname"]').val(),
             eaddr : $('input[name="eaddr"]').val() },
    success: function(data) {},
    error: function() {}
  });
  return false;
});