Как вызвать функцию колбы с сервера, используя onBlur в HTML? - PullRequest
0 голосов
/ 16 мая 2018

Я новичок во Flask и пытаюсь создать простую страницу регистрации.Вот код:

{% extends 'layout.html' %}
{% block body %}

<div class="container">
        <form method="post" action="{{ url_for('signup') }}">

                <label for="user">Username </label>
                <input type="text" id="user" name="user" onblur='NameCheck()'>

               <i id='acceptIC' class="fas fa-check-circle"></i>


                <label for="pas">Password </label>
                <input type="password" id="pas" name="pas">


                <label for="mail">Email ID </label>
                <input type="email" id="mail" name="mail">

            <button type="submit">Signup</button>
        </form>
</div>

{% endblock %}

Я хочу отобразить значок шрифта рядом с именем пользователя, как только он потеряет фокус, этот значок зеленый, если имя пользователя доступно (база данных в MongoDB), и красный, еслиэто не так

1 Ответ

0 голосов
/ 20 августа 2018

Это может быть достигнуто с помощью flask-socketio в вашем onBlur вызове функции javascript, такой как -

function NameCheck(data) {
if (data !== '') {
    sock.emit('name_check', data);
    sock.on('responded', function (msg) {
        if (msg) {
            document.getElementById('acceptIC').style['display'] = 'flex';
           }
    });
}
}

Звонок в колбу

@socketio.on('name_check')
def handle_name(data):
    socketio.emit('responded', Mongo.checkUser(data))

, где

Mongo.checkUser(data)

- ваша необходимая функция. Возвращает значение bool

...