首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery-steps :提交表单时禁用提交按钮

jquery-steps :提交表单时禁用提交按钮
EN

Stack Overflow用户
提问于 2016-06-17 03:13:47
回答 2查看 1.2K关注 0票数 0

我使用的是jquery-steps.js,

我想要禁用提交按钮,当有人点击提交,并永远不会激活它,直到表单被提交。

原因是如果有人点击提交很多次,我会收到很多邮件!

注意:我的HTML文件没有包含submit按钮,它只显示在下面的js文件中

我的js文件看起来像这样。

代码语言:javascript
复制
$(function() {
    $("#smart-form").steps( {
        bodyTag:"fieldset", headerTag:"h2", bodyTag:"fieldset", transitionEffect:"slideLeft", titleTemplate:"<span class='number'>#index#</span> #title#", labels: {
            finish: "Send søknad", next: "Neste", previous: "Tilbake", loading: "Laster..."
        }
        , onStepChanging:function(event, currentIndex, newIndex) {
            if(currentIndex>newIndex) {
                return true;
            }
            var form=$(this);
            if(currentIndex<newIndex) {}
            return form.valid();
        }
        , onStepChanged:function(event, currentIndex, priorIndex) {}
        , onFinishing:function(event, currentIndex) {
            var form=$(this);
            form.validate().settings.ignore=":disabled";
            return form.valid();
        }
        , onFinished:function(event, currentIndex) {
            var form=$(this);
            $(form).ajaxSubmit( {
                target:'.result', beforeSubmit:function() {}
                , error:function() {}
                , success:function() {
                    $('.alert-success').show().delay(7000).fadeOut();
                    $('.field').removeClass("state-error, state-success");
                    if($('.alert-error').length==0) {
                        $('#smart-form').resetForm();
                        reloadCaptcha();
                    }
                }
            }
            );
        }
    }
EN

回答 2

Stack Overflow用户

发布于 2016-06-17 04:04:52

这可能有点通用(我还没有测试过它),但这可以帮助您入门

代码语言:javascript
复制
$(document).find('input[type="submit"').prop('disabled', 'disabled');
票数 0
EN

Stack Overflow用户

发布于 2016-06-17 05:58:29

在第一行$(function() {之后,添加:

代码语言:javascript
复制
var isFinishing = false;

onFinished事件中,更改以下行:

代码语言:javascript
复制
var form=$(this);

适用于:

代码语言:javascript
复制
if (isFinishing) return;

isFinishing = true;
var form=$(this);

如果AJAX调用的success事件没有重新加载页面,则应考虑在此函数中添加以下行:

代码语言:javascript
复制
isFinishing = false;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37867607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档