Saya memiliki kelas wtform yang terlihat seperti ini:
class Registration(Form):
email = StringField('Email', validators=[Required(), Email()])
username = StringField('Username', validators=[Required()])
name = StringField('Name', validators=[Required()])
password = PasswordField('Password',
validators=[
Required(),
EqualTo('confirm_password', message='Your passwords did not match'),
Length(min=6, max=20, message='passwords must be longer than 6 characters')
])
confirm_password = PasswordField('Confirm Password', validators=[Required()])
submit = SubmitField('Register')
def validate_email(self, field):
if User.query.filter_by(email=field.data).first():
raise ValidationError('Email already registered')
def validate_username(self, field):
if User.query.filter_by(username=field.data).first():
raise ValidationError('Username already exists')
Saya membayangkan WTForms tidak menawarkan segala bentuk validasi inline secara real-time di front-end, yang tidak masalah, tapi saya bertanya-tanya apakah ada cara untuk membuat validasi real-time dengan mengambil validator untuk bidang dan menggunakannya di beberapa jenis javascript.
Misalnya, bidang kata sandi. Kata sandi harus lebih dari 6 karakter. Dalam hal ini, saya ingin menampilkan formulir validasi seperti saat mereka mengetiknya:
Namun, begitu mereka mengetikkan kata sandi dengan panjang yang valid, ini akan menampilkan:
Masalah yang saya alami adalah mengakses persyaratan dan validator wtform seperti yang ada di halaman. Apakah ini mungkin dilakukan?