在Django AJAX的用户名验证 [英] AJAX username validation in Django

查看:139
本文介绍了在Django AJAX的用户名验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要创建异步用户名验证, 其中,在用户名的输入值的变化,对数据库访问,看看该用户名是有效的使用。到目前为止,我有这个code,这似乎并没有工作。请帮我找到了那里的东西出了问题。谢谢!

我的HTML:

 < D​​IV>用户名和LT; / DIV>
<输入类型=文本名称=IDID =ID>
< D​​IV ID =idval>< / DIV>
 

我的脚本:

 <脚本>
传播CheckId(){
$获得('/注册/',{用户名:$(本).VAL()},
    功能(数据){
        如果(数据==真){
            $('#idval)HTML(你可以使用这个ID)。
        } 其他 {
            $('#idval)HTML(不可用)。
        }
});
}
传播的onChange(){
 $(#ID)改变(函数(){CheckId()})。
}
$(文件)。就绪(的onChange);
< / SCRIPT>
 

我的观点:

 高清注册(要求):
    如果request.method ==GET:
        P = request.GET.copy()
        如果p.has_key(用户名):
            名称= P [用户名]
            如果User.objects.filter(username__iexact =名):
                返回的Htt presponse(假)
            其他:
                返回的Htt presponse(真)
 

解决方案

CheckId() $(本).VAL()是行不通的。您需要 $('#身份证')。VAL()

请参阅本次讨论如何使用关键字的工作

I want to create asynchronous username validation, where upon change of the value of the username input, the database is accessed to see if that username is valid for use. So far I have this code, which doesn't seem to work. Please help me in finding out where things went wrong. Thanks!

My HTML:

<div>Username</div>
<input type="text" name="id" id="id">
<div id="idval"></div>

My Script:

<script>
function CheckId() {
$.get('/signup/', {username: $(this).val()},
    function(data){
        if(data == "True"){
            $('#idval').html("You may use this ID");
        } else {
            $('#idval').html("Unavailable");
        }
});
}
function onChange(){
 $("#id").change( function() {CheckId()});
}
$(document).ready(onChange);
</script>       

My View:

def signup(request):
    if request.method == "GET":
        p = request.GET.copy()
        if p.has_key('username'):         
            name = p['username']
            if User.objects.filter(username__iexact=name):
                return HttpResponse(False)
            else:
                return HttpResponse(True)

解决方案

in CheckId() $(this).val() isn't going to work. You need $('#id').val()

See this discussion of how the this keyword works

这篇关于在Django AJAX的用户名验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆