Javascript 仅当表单成功提交时发生jQuery事件
我有一个有验证的表格。目前,发布表单最多需要10秒钟。我想在表单提交时加载loading.gif。目前的问题是,即使表单未通过验证,gif也会加载 我需要一种仅在表单有效时才能加载gif的方法,以下是我当前的脚本:Javascript 仅当表单成功提交时发生jQuery事件,javascript,jquery,html,forms,Javascript,Jquery,Html,Forms,我有一个有验证的表格。目前,发布表单最多需要10秒钟。我想在表单提交时加载loading.gif。目前的问题是,即使表单未通过验证,gif也会加载 我需要一种仅在表单有效时才能加载gif的方法,以下是我当前的脚本: $('form').submit(function() { $('#gif').css('visibility', 'visible'); return true; }); 我正在使用parsley.js进行验证 $('form').submit(function(
$('form').submit(function() {
$('#gif').css('visibility', 'visible');
return true;
});
我正在使用parsley.js进行验证
$('form').submit(function() {
var $form = $(this);
$form.parsley().validate();
if ($form.parsley().isValid())
$('#gif').css('visibility', 'visible');
});
在显示gif之前,通过显式调用validate
,使用parsley.js确定表单是否有效
另外,使用
表单
作为选择器时要小心。每页可以有多个表单。如果可能,请使用id。如果要在执行请求之前显示/隐藏加载框,则无需使用默认的form.action属性来发布数据。您需要这样做smth:
$('#form').submit(function(event) {
/* stop form from submitting normally */
event.preventDefault();
var $form = $(this);
if(this.checkValidity()) { // form validation based on HTML 5
$('#gif').css('visibility', 'visible');
/* Send the data using post */
var posting = $.post($form.attr('action'), $form.serialize());
posting.done(function() {
console.log("Request was executed successfully!!!")
}).always(function() {
// hide loading bar in any way on success/error
$('#gif').css('visibility', 'hidden');
})
}
})
通过验证
-哪个验证?客户端?服务器端?客户端,parlsey.js基本上只是在表单输入中添加所需的标记。如果您创建了一个fiddle,那么parlsey.js就很好了。因为从你所提到的,它不应该起作用。你试图实现的目标与你所提到的正好相反。您希望在for提交之前显示GIF
,因为一旦提交表单,页面将重新加载(如果您不使用ajax)。因此,实际上您正在显示GIF
,显示返回结果所需的parlsey.js
时间。所以请分享一把小提琴!谢谢。太好了,就这样谢谢,我会在它允许的时候把它标记正确;)