Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能提交一个只对回调使用jQuery的老式HTML表单?_Javascript_Jquery_Html_Ajax_Forms - Fatal编程技术网

Javascript 我怎样才能提交一个只对回调使用jQuery的老式HTML表单?

Javascript 我怎样才能提交一个只对回调使用jQuery的老式HTML表单?,javascript,jquery,html,ajax,forms,Javascript,Jquery,Html,Ajax,Forms,因为我的整个页面都是一个基本的“姓名和电子邮件”登记表,我不明白为什么我不能做一个好的工作 <form action="/Account/Register/" method="POST" id="registration-form"> <fieldset class="form-group"> <label for="name">Name</label> <input t

因为我的整个页面都是一个基本的“姓名和电子邮件”登记表,我不明白为什么我不能做一个好的工作

    <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>
毕竟,这就是
表单
的初衷

但是我确实希望从
表单的提交中得到一件事,那就是
成功
错误
回调。是否有任何方法可以以HTML方式提交
表单
,并且仍然连接回调?如果是,如何使用?

使用$.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;
});

6行代码几乎没有超出工程范围。此外,您可以使用
$对其进行精简。序列化
(参见jQuery文档),除非使用ajax,否则在不重新加载页面的情况下无法提交html表单。如果您执行的是普通的旧html提交,那么错误/成功回调的想法就没有意义了,因为它们被重定向了。老式的表单提交会将用户导航到另一个页面(或者可能是同一个页面,但会刷新)。你想要的成功和错误概念并不适用于这一点。对于传统表单提交,如果发生错误,服务器端代码将返回某种错误页面。要么提交简单表单并获取新页面,要么使用Ajax将其添加到Ajax中并获取回调。如果您想提交而不使用jQuery,也不需要重新加载,则需要提交到隐藏的iFrame,并让结果使用返回的脚本修改调用页面。
$("#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;
});