django新手村10-----关於注册

上一篇用到的注册,其实是有点小问题的,像是如果用户名重复了,或是帐号密码都不打也可以注册

这一篇比较注重jquery,可能比较难?大概说说概念

当用户名重复,最简单的方法就是直接刷新,但是这样用户会觉得莫名其妙,刚刚打的资料都白打了

所以要在html添加jquery预处理判断是否已有该用户名称,如果有button就继续无法使用,如果没有,就会让button可以点击

$.getJSON('../check/',{'username':username}, function(data)
第一个变数是url,第二个是传直到url(get方式),第三个是那个url回传的值
check必须要使用JsonResponse

register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>register</title>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
   
    <script>
    
    $(document).ready(function(){
        
        var name = $("#name");

        name.on({
        blur:function(){
            console.log(name.val().trim())
            var username = name.val().trim()

            if (username.length){
                
                $.getJSON('../check/',{'username':username}, function(data){
                    
                    console.log(data)
                    if (data['check']){
                        $("#hint").html('ok').css('color','green');
                        $('#btn').attr('disabled',false);
                    }
                    else{
                        $("#hint").html('wrong').css('color','red')
                    }
                    
                })
                
            }
            }          
        })

    })

    </script>
    
</head>
<body>
    <form action="{% url 'three:doregister'%}" method="post">
<!--        {% csrf_token %}-->
        <span>username: <input type="text" name="username" id="name"></span>
        <br>
        <span id="hint"> </span>
        <br>
        <span>password: <input type='password' name="password" required></span>
        <br>
        <button disabled='disabled' id="btn">register</button>
        
    </form>
</body>
</html>

views.py

def check(request):

    username = request.GET.get('username')

    person = Person.objects.filter(name=username).first()

    if person:
        return JsonResponse(data={'check': False})

    return JsonResponse(data={'check': True})

<<:  [DAY3]SQL新手的懒人笔记

>>:  Java学习之路08---方法

DAY09随机森林演算法(回归方法)

昨天,我们已建立完随机森林,那今天,我打算使用回归方法去看他得出来结果,所以会跟基尼系数预测类别方法...

图的最短路径 - 佛洛伊德演算法 - 表格算法 - DAY 28

前言 延续上一篇,这次要着重在表格算法,希望能让大家看的更明白 STEP 1 - 开放 A 当绿色值...

Day28 plugin

在专案中我们常常需要扩充功能,因此我们就可以使用插件,所以今天我们就要来学习如何使用 如何使用 可以...

30-18 之 DataSource Layer- DataMapper

这一篇文章我们将要谈谈常常听到的 DataMapper 这个东西,应该是有不少人在一些 ORM 的 ...

Day.22 「让我们在更深入函式~」 —— JavaScript call & apply & arguments

之前我们有说过,再调用函式的时候,浏览器会传递隐藏的参数给我们函式 一个是「this」,除了 th...