仅当表单成功提交时才发生jQuery事件
jQuery event only if form successfully submitted
我有一个经过验证的表单。目前,表单发布可能需要长达10秒的时间。我想在表单提交时加载.gif。我现在遇到的问题是,即使表单没有通过验证,gif也会加载。
我需要一种只有在表单有效的情况下才能加载gif的方法,这是我当前的脚本:
$('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之前,使用parsley.js通过显式调用validate
来确定表单是否有效。
顺便说一句,小心使用form
作为选择器。每页可能有多个表单。如果可能的话,请使用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');
})
}
})
相关文章:
- 在创建对象后附加一个jquery事件
- 将jQuery事件应用于所有类元素
- Jquery事件处理程序仅适用于匿名函数
- 如何在jQuery事件处理程序中存储和重用超时
- 无线电输入更改的jQuery事件未启动
- 我应该/如何清除mousemove JQuery事件侦听器
- 是否可以在jQuery事件中更改Angular范围
- jQuery事件侦听器多次启动
- jQuery 事件处理程序堆叠
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器
- 一个接一个地触发jQuery事件
- 在JQuery事件中查找父元素
- 堆叠jQuery事件(动画)
- 在jquery事件中引用javascript对象
- 动态添加对象的jQuery事件处理程序
- jQuery事件命名空间是否可以包含破折号
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 没有为Ajax添加的新元素注册Jquery事件
- 动态创建的DOM元素上的jQuery事件绑定
- jQuery事件未在动态生成的内容上激发