【发布时间】:2020-10-15 18:59:30
【问题描述】:
我有一个 html 页面,我在其中显示文本文件,显示图像 。下面给出了此屏幕的 HTML 代码。
如果用户使用表单验证错误消息输入无效的电子邮件 ID 或“输入您的电子邮件”文本字段中存在的电子邮件 ID,我想在屏幕上显示错误消息。目前我在下面写了一段代码显示表单验证错误消息。但此错误消息始终显示在“新密码”测试字段旁边。如果用户输入无效的电子邮件 ID 或现有的电子邮件 ID,有什么方法可以在“通过电子邮件发送您的邮件”旁边显示表单验证错误消息?
HTML 代码:
<fieldset class="module aligned wide">
{% csrf_token %}
<div class="form-row">
{{ form.old_password.errors }}
<label for="{{ form.id_old_password.id_for_label }}">Old password:</label> {{ form.old_password }}
</div>
<div class="form-row">
{{ form.new_password1.errors }}
<label for="{{ form.id_new_password1.id_for_label }}">New password:</label> {{ form.new_password1 }}
</div>
<div class="form-row">
{{ form.new_password2.errors }}
<label for="{{ form.id_new_password2.id_for_label }}">Password (again):</label> {{ form.new_password2 }}
</div>
<div class="form-row">
{{ form.email_reset.errors }}
<label for="{{ form.email_reset.id_for_label }}">Enter Your Email (optional):</label> <input id="id_email_reset" placeholder="Enter your email" name="email_reset" type="email" pattern=".+@.+\.com"/>
</div>
</fieldset>
Forms.py
class CustomPasswordChangeForm(PasswordChangeForm):
""" This is a customized class to validate the password by overriding
the existing function "clean_new_password1" from base class PasswordChangeForm.
"""
MIN_LENGTH = 8
MAX_LENGTH = 64
field_order = ['oldpassword', 'password1', 'password2']
def clean_new_password1(self):
password1 = self.cleaned_data.get('new_password1')
# At least MIN_LENGTH long
if len(password1) < self.MIN_LENGTH:
raise forms.ValidationError("The new password must be atleast %d characters long." % self.MIN_LENGTH)
# At most MAX_LENGTH long
if len(password1) > self.MAX_LENGTH:
raise forms.ValidationError("The new password must be maximum %d characters long." % self.MAX_LENGTH)
#if email id is given, then update it in database.
if len(self.data['email_reset'].strip()) > 0:
self.user.email = self.data['email_reset']
if (User.objects.filter(email=self.user.email).count() > 1):
raise forms.ValidationError("This email Id is already exist for different account. Please use different email id.")
return password1
【问题讨论】:
标签: javascript html jquery django django-forms