Javascript 表格提交确认书
我想在表单成功提交时显示一个确认(更准确地说是一个弹出窗口)。以前我使用Ajax验证表单并显示弹出窗口,但现在我想在没有Ajax的情况下实现相同的Javascript 表格提交确认书,javascript,jquery,forms,Javascript,Jquery,Forms,我想在表单成功提交时显示一个确认(更准确地说是一个弹出窗口)。以前我使用Ajax验证表单并显示弹出窗口,但现在我想在没有Ajax的情况下实现相同的 javascript/Jquery中是否存在在表单提交成功后调用的事件?或者还有其他选择吗 谢谢 编辑1: 我正在使用Spring 3.0。 下面是详细的场景 1.用户填写表格并单击提交 2.请求将发送到控制器(服务器端) 3.验证将在服务器端完成 4.如果存在错误,我将使用Spring验证来显示它,并转到步骤1 5.否则将成功提交表单并显示弹出窗
javascript/Jquery中是否存在在表单提交成功后调用的事件?或者还有其他选择吗 谢谢
编辑1:
我正在使用Spring 3.0。
下面是详细的场景
1.用户填写表格并单击提交
2.请求将发送到控制器(服务器端)
3.验证将在服务器端完成
4.如果存在错误,我将使用Spring验证来显示它,并转到步骤1
5.否则将成功提交表单并显示弹出窗口。
6.用户单击弹出窗口后,重定向到其他页面
编辑2:
我完全同意Ajax是正确/最好的方法的观点,我已经用Ajax实现了它。但客户希望使用非ajax方法,我无法超越他的话。我不确定您使用的是哪种语言编写代码。 一个选项是使用javascript 在提交按钮onclick event(客户端事件)上,执行页面验证并显示警报弹出窗口(如果页面有效)
<script type="text/javascript">
function OnSubmitClientClick() {
Page_ClientValidate();
if (Page_IsValid) {
alert('Form has been successfully submitted.');
return true;
}
}
</script>
SubmitClientClick()上的函数{
Page_ClientValidate();
如果(第页有效){
警报('表单已成功提交');
返回true;
}
}
我不确定您使用的是哪种语言。
一个选项是使用javascript
在提交按钮onclick event(客户端事件)上,执行页面验证并显示警报弹出窗口(如果页面有效)
<script type="text/javascript">
function OnSubmitClientClick() {
Page_ClientValidate();
if (Page_IsValid) {
alert('Form has been successfully submitted.');
return true;
}
}
</script>
SubmitClientClick()上的函数{
Page_ClientValidate();
如果(第页有效){
警报('表单已成功提交');
返回true;
}
}
为什么要放弃AJAX方法?没有AJAX,服务器端验证意味着页面重新加载。在页面重新加载时,您将丢失客户端(JS)状态
一种替代方法是使用隐藏框架/iframe/新窗口在表单提交时执行服务器端验证(可能使用您在问题中提到的弹出窗口)。在我看来,这不是正确的方法(一个很大的否定)。您可能宁愿坚持使用AJAX,也可以使用非AJAX的表单提交方式。为什么要放弃AJAX方法?没有AJAX,服务器端验证意味着页面重新加载。在页面重新加载时,您将丢失客户端(JS)状态
一种替代方法是使用隐藏框架/iframe/新窗口在表单提交时执行服务器端验证(可能使用您在问题中提到的弹出窗口)。在我看来,这不是正确的方法(一个很大的否定)。您可能宁愿坚持使用AJAX,也可以使用非AJAX的表单提交方式。不使用AJAX?没问题-让我们回到过去网络是如何工作的;-) 既然我发现您不想刷新当前页面,那么这种方法如何:
这一切都很容易设置,让我们知道它在没有Ajax的情况下是如何工作的。?没问题-让我们回到过去网络是如何工作的;-) 既然我发现您不想刷新当前页面,那么这种方法如何:
这一切都很容易设置,让我们知道它是如何为你工作的。这个问题激发了我的好奇心,因为我正试图使用Leon的iframe解决方案做类似的事情。但是,最终我成功了,我建议您不要使用直接
onload
属性,而是使用iframe上的
编辑:下面是我如何设置表单(使用HTML5,因此不需要引号):
不要使用display:none
,因为某些浏览器会拒绝提交未显示的元素
然后在我的JavaScript中
$('iframe').load(function(){
// Your load event here.
});
您还可以将其更改为about,使其仅在特定事件之后触发(例如,如果您使用的是动态表单)。在这种情况下,您可能希望在.load()
之前使用.unbind('load')
,以防止先前添加的.load()
函数调用
现在,当表单提交时,它将加载到隐藏的iframe中。当iframe加载页面(在我的示例中是backend.php)时,它会触发.load()
函数。在我的特定情况下,我设置了一个
来显示一条消息:
$('iframe').load(function(){
$('#message').html('The form successfully submitted.');
});
这个问题激起了我的好奇心,因为我正试图用Leon的iframe解决方案做类似的事情。但是,最终我成功了,我建议您不要使用直接
onload
属性,而是使用iframe上的
编辑:下面是我如何设置表单(使用HTML5,因此不需要引号):
$('iframe').load(function(){
$('#message').html('The form successfully submitted.');
});