这是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;使用bootstrap
或materialize
框。
由于我不具备Javascript
,HTML
和Django
方面的丰富经验,因此我很难做到这一点。我怎么能以这样的方式修改这段代码呢?到目前为止,按钮创建良好,它发送了我想要的消息。我遇到的问题是它不想等待5分钟,我甚至不知道如何显示我想要的信息。
我创建的按钮是one
要显示消息,我可以在我的Django方法JsonResponse
中使用HttpResponse
而不是send
,并在我的javascript块中重复使用它吗?我是否必须使用JQuery来显示此类消息?
答案 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; }); }); });