在我的 django 应用程序中,我尝试使用 ajax 来检查用户名是否已经存在,如果是则显示错误。
这是我所拥有的
html:
<form method="post" id='my_form'>
{% csrf_token %}
<input id='username' type="text" name="username"/>
<button type="submit">Valider</button>
</form>
js:
$('#my_form').submit(function(){
var username = $('#username').val();
if (username == ''){
alert('please enter username');
return false;
}
$.ajax({
type: "POST",
url: "/auth_validate",
data: {'username': $('#username').val(), 'csrfmiddlewaretoken': '{{csrf_token}}'},
dataType: "text",
success: function(response) {
var response = $.parseJSON(response);
if (response.success){
return true;
}
else{
alert(response.error);
return false;
}
},
error: function(rs, e) {
alert(rs.responseText);
return false;
}
});
})
意见:
def auth_validate(request):
error = ''
success = False
if request.method == 'POST':
username = request.POST.get('username', None)
if not username:
error = _('Please enter username')
elif User.objects.filter(username__exact=username).exists():
error = _('Sorry this username is already taken')
else:
success = True
ajax_vars = {'success': success, 'error': error}
return HttpResponse(simplejson.dumps(ajax_vars), mimetype='application/javascript')
当我输入用户名(如果存在或不存在)时,会出现一个空警报,当我单击“确定”时,会提交表单。此外,错误不会出现。
知道为什么它不起作用吗?
谢谢您的帮助。