【问题标题】:are you sure / dirty forms - hide or show please wait你确定/脏表格 - 隐藏或显示请稍候
【发布时间】:2014-09-14 23:51:46
【问题描述】:

我在一个测试表单上使用dirty-forms / are-you-sure js,以确认用户是否确实想要离开未保存更改的页面。

这按预期工作,但我也使用“请稍候”图像,显示用户何时调用服务器。

如何仅在用户点击are-you-sure消息弹出框上的“离开此页面”按钮时才触发“请稍候”图像?

目前,当用户单击取消按钮时,我会触发请等待图像出现,b/c 我想不出还能从哪里触发它。

这是我的

代码:
<div id="loading-div-background">
    <div id="loading-div" >
        <img  src="{{ STATIC_URL }}img/page-loader.gif" />
    </div>
</div>

这是我的模板代码:

<a href="{% url certification_details %}" class="btn" onclick="showProgressAnimation();">Cancel</a>

这是我的js代码:

<script>
    $('form').areYouSure( {'message':'You have unsaved changes.'} );
</script>

EDIT - 按要求添加隐藏图片 css。

这是在第 1 页加载时隐藏请稍候图标的 CSS:

#loading-div-background {
    background-color: rgba(246,246,246,0.7);
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
}

【问题讨论】:

  • 现有答案有一个工作示例。如果他的回答有问题,请发表评论并让他知道。我觉得不错。
  • 顺便说一句,您如何显示/隐藏图像..?如果问题仍然存在,能否提供在线演示..?
  • 克里斯贝克 - 再看一遍。加载页面。刷新页面而不做任何更改。

标签: javascript jquery forms form-submit


【解决方案1】:

您可以保存表单的状态,也可以保存表单的值。

检查这两个链接。

https://stackoverflow.com/a/10312156/2655623

https://stackoverflow.com/a/26535253/2655623

您还可以获取表单的所有元素并将其保存在某处。

当您想重置表单时,您也可以重置已保存值的状态。

不过,这些都是原始想法。

【讨论】:

  • Salivan,这是更好的回应,所以我奖励你。
【解决方案2】:

看例子:

   /*
    *  Mixing in your own logic into the warning.
    */
    $('#my-form').areYouSure( {'silent':true} );
    $(window).on('beforeunload', function() {
        isSunday = (0 == (new Date()).getDay());
        if ($('#my-form').hasClass('dirty') && isSunday) {
            return "Because it's Sunday, I'll be nice and let you know you forgot to save!";
        }
    }

如果您想在任何情况下(离开或不离开)触发您的请稍候消息,您可能应该使用以下内容:

   /*
    *  Displaying your please wait message
    */
    $('#my-form').areYouSure( {'silent':true} );
    $(window).on('beforeunload', function() {
        $('#pleasewaitmessage').show();
        return "You have unsaved changes.";        
    }

Plunkr here

【讨论】:

  • 感谢您的回复,但是如果页面被重置,并且脏表单取消按钮被点击,那么请等待应该不会出现在页面上。这是我目前遇到的错误。
  • “如果页面被重置,并且点击了脏表单取消按钮” - 这对我来说没有意义。您能否进一步说明您正在尝试做什么/工作流程?
  • yhax,如果页面脏了并且页面被重置(或者用户试图离开页面而不保存更改),将弹出离开或留下确认。请稍候图标仅应在用户单击“离开此页面”按钮时出现/显示。这有意义吗?
【解决方案3】:

我不认为这是可以实现的。

Salivan 给出了更好的回应。

【讨论】:

  • 您为什么将此标记为答案? “我不认为”不能标记为答案。
猜你喜欢
  • 2011-05-12
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
相关资源
最近更新 更多