我有一個登錄、注冊和密碼重置頁面,登錄和注冊頁面都自動聚焦在用戶名欄位上,但是在我的密碼重置頁面上,自動聚焦不起作用。我在我的模板中嘗試了 widget_tweaks 但無濟于事:
{{ fieldValues.email|attr:"autofocus" }} and {{ form.email|attr:"autofocus" }}
我只是無法理解為什么自動對焦適用于我的其他表單而不適用于密碼重置。我的代碼如下:
看法
class RequestPasswordResetEmail(View):
@method_decorator(check_recaptcha_form)
def get(self, request):
return render(request, 'password/reset-password.html')
@method_decorator(check_recaptcha_form)
def post(self, request):
email = request.POST['email']
context = {
'values': request.POST
}
current_site = get_current_site(request)
user = User.objects.filter(email=email)
user_by_email = User.objects.filter(email=email).first()
if not user.exists():
messages.error(request, 'Please supply a valid email')
return render(request, 'password/reset-password.html', context)
if user.exists() and request.recaptcha_is_valid:
uid = urlsafe_base64_encode(force_bytes(user_by_email.pk))
token = PasswordResetTokenGenerator().make_token(user_by_email)
email_subject = 'WFI Workflow System - Password Reset'
email_body = 'password/password_reset_email.html'
to_email = [user_by_email.email]
send_email(user, request, email_subject, email_body, uid, token, to_email)
messages.success(
request, mark_safe(
'We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.'
'<br > If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.</br>'))
return render(request, 'password/reset-password.html')
模板
{% extends 'base.html' %}
{% block title %}Password Reset{% endblock %}
{% block content %}
<div class="d-flex justify-content-center">
<h3 id="form-title">Password Reset</h3>
</div>
<span class="forgot_pass">Forgotten your password? Enter your email address below, and we’ll email instructions for setting a new one.</span>
<div class="d-flex justify-content-center form_container">
<form action="{% url 'request-password' %}" method="POST">
{% csrf_token %}
<div align="center">
<div class="input-group mb-3">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-envelope-square"></i></span>
<input type="email" name="email" placeholder="Email" class="form-control"
value="{{ fieldValues.email }}"/>
</div>
</div>
</div>
{% include 'recaptcha.html' %}
<div class="d-flex justify-content-center mt-3 login_container">
<input class="btn login_btn" type="submit" value="Submit">
</div>
</form>
</div>
{% include 'messages.html' %}
<div class="input-group mb-1">
</div>
<div class="mt-1">
<div class="d-flex justify-content-center links">
Already have an account? <a href="{% url 'login' %}" class="ml-2">Login</a>
</div>
<div class="d-flex justify-content-center links">
Don't have an account? <a href="{% url 'register' %}" class="ml-2">Sign Up</a>
</div>
</div>
{% endblock content %}
我什至嘗試了以下 javascript 但再次什么也沒做:
<script type="text/javascript">
$(function () {
// When the page has finished loading,
// autofocus on the username field
$('input#id_email').focus();
});
</script>
任何幫助深表感謝。謝謝
uj5u.com熱心網友回復:
只需將 autofocus 屬性添加到您的輸入欄位:
<input type="email" name="email" placeholder="Email" class="form-control" value="{{ fieldValues.email }}" autofocus>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/343309.html
標籤:javascript html 姜戈
上一篇:下訂單時如何在庫存中創建減法?[Django][Python][電子商務網站]
下一篇:回傳Django中的每月銷售額
