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;
});