在一段时间内显示消息

时间:2017-07-03 13:07:08

标签: javascript django

这是javascript部分

$(function(){
    $('.select-another-button').each(function(){
      $(this).bind('click', function(e){
        $('.select-another-button').css('pointer-events', 'none');
        setTimeout(function(){ $('.select-another-button').css('pointer-events', 'auto'); }, 300000);
        e.preventDefault();
        fileBrowser(this);
        return false;
      });
    });
  });

这是将发送消息的Django方法

@staff_member_required
@csrf_exempt
def send(request, request_id=None):
    req= Request.objects.get(pk=request_id)
    request_folders = req.folder.all_files.all()
    context = []

    for doc in request_folders:
        if doc.meta.state == u'rejected':
            context.append(doc)

    if context:
        ctx = {'request': req}
        EmailFromTemplate('document-refusal', extra_context=ctx)\
            .send_to(req.customer.user)

    return HttpResponse('')

以下是urls.py文件

app_name = 'messaging'
urlpatterns = [
   ...,

    url(r'^send/(?P<request_id>[0-9]+)/$',
        send, name='send'),
]

以下是.html文件

的一部分
        <a href="#"
       title="{% trans "Send email - rejected file(s)" %}"
       class="btn btn-icon select-another-button"
       data-url="{% url "messaging:send" request_id=object.pk %}">
        <i class="material-icons">assignment_late</i>
        <div class='alert alert-success' id='message'>
            <text>
            The message was sent to the client. Please wait 5 minutes \n before sending the message again.
            </text>
        </div>
    </a>

这是我到目前为止所做的。它还没有达到目的,但我认为它并不缺乏功能。我创建了一个按钮,它会在特定条件下发送特定消息。一旦发送,我希望按钮被停用(即我们不能点击点击发送消息),持续5分钟。此外,我希望在此期间显示一条消息&#39;我们已经发送了消息。请等待5分钟再发送一次。&#39;使用bootstrapmaterialize框。

由于我不具备JavascriptHTMLDjango方面的丰富经验,因此我很难做到这一点。我怎么能以这样的方式修改这段代码呢?到目前为止,按钮创建良好,它发送了我想要的消息。我遇到的问题是它不想等待5分钟,我甚至不知道如何显示我想要的信息。

我创建的按钮是one

要显示消息,我可以在我的Django方法JsonResponse中使用HttpResponse而不是send,并在我的javascript块中重复使用它吗?我是否必须使用JQuery来显示此类消息?

2 个答案:

答案 0 :(得分:0)

使用javascript setTimeout https://www.w3schools.com/jsref/met_win_settimeout.asp。 暂停五分钟。并在回调函数中编写激活按钮的代码。

答案 1 :(得分:0)

<div class="alert alert-success" id="message"> <strong>Success!</strong> Indicates a successful or positive action. </div>

$(function(){ $('.select-another-button').each(function(){ $(this).bind('click', function(e){ $('#message').show() setTimeout(function(){ $('#message').hide() }, 300000); e.preventDefault(); fileBrowser(this); return false; }); }); });