通过 HTTP GET 请求从服务器上请求数据。
必需的 URL 参数规定您希望请求的 URL。
可选的 callback 参数是请求成功后所执行的函数名。
$("button").click(function()
{$.get("demo_test.php",function(data,status){ alert("数据:
" + data + "\ n 状态: " + status); }); });
范例:验证用户名是否存在
1、模版
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title >ajax 教程</title >
<script src="/static/jquery-1.12.4.min.js">
</script>
<script>
$(function(){
$('#user_name').blur(function () {
var len = $('#user_name').val().length;
if (len < 5 || len > 20) {
$('#user_name').next().html('请输入 5-20 个字符的用户名')
$('#user_name').next().show();
error_name = true;
}
else {
$.get('/user_exist/?uname=' + $('#user_name').val(), function (data) {
if (data.count == 1) {
$('#user_name').next().html('用户名已经存在').show();
error_name = true;
} else {
$('#user_name').next().hide();
error_name = false;
}
});
}
});
});
</script >
</head>
<body>
<form action='/register_handle/' method='post'>
{%csrf_token%}
<label>用户名:</label>
<input type="text" name="user_name" id="user_name">
<span style="color:#ff0000;"></span>
</form >
</body>
</html>
视图函数
def gettest(request):
return render(request, 'ajaxtest/gettest.html')
def user_exist(request):
uname = request.GET.get('uname')
print('register_exist:' + uname)
count = 0
try:
count = UserInfo.objects.filter(nickname=uname).count()
except Exception as e:
print(e)
print('register_exist:'+str(count))
return JsonResponse({'count':count})
最后配置url
略
改造过的:
js代码:
phone.blur(function(){
var
reg1=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,
oI=phone.siblings().find('i');
if(!phone.val()){
oI.html('手机号不能为空')
return false;
}else if(!reg1.test(phone.val())){
oI.html('手机号不合法')
return false;
}else{
$.get('/cosme/user_exist/?username=' + phone.val(), function (data) {
// alert(data.count)
if (data.count == 1) {
oI.html('用户名已经存在').show();
return false;
} else {
oI.html('手机号正确')
// alert(data.count)
return false;
}
});
}
})
视图函数:
def user_exist(request):
# 获取用户名
username = request.GET["username"]
print("username :"+username)
count = 0 # 记录条数0
try:
list = User.objects.filter(username=username)
# print(list)
count = list.count()
# get 会报错,filter不会报错
except Exception as e:
print(e)
# print(count)
return JsonResponse({"count": count})
最后路径配置
前端中使用
注意,js中使用的参数,以及路径问题
网友评论