在我的Django應用程序中,我希望能夠發佈並獲得相同的jQuery請求。發佈並獲得相同的jQuery請求
我的HTML:
<form method="post" id='validation_form'>
{% csrf_token %}
<input id='username' type="text" name="username" value=""/>
<button type="submit">Submit</button>
</form>
JS:
var username = $('#username').val()
$.post('/auth_validate', {'username': username}, function(data) {
// Get Request to get something.
}
瀏覽:
def auth_validate(request):
error = False
if request.method == 'POST':
username = request.POST.get('username')
if User.objects.filter(username__exact=username).exists():
error = 'Sorry this username is already taken'
我想獲得 '錯誤' 在我用來張貼同樣的jQuery請求。有可能這樣做嗎?
謝謝你的幫助。
編輯:這是我找到的解決方案。
JS:
function validateForm() {
var username = $('#username').val()
var result=''
$.get('/auth_validate_username/', {'result':result}, function(data){
$.post('/auth_validate_username/', {'username': username}, function(data) {
$('#error_message').html(data);
});
});
return false;
};
HTML:
<form method="post" onsubmit="return validateForm();">
{% csrf_token %}
<input id='username' type="text" name="username" value=""/>
<div id='error_message'></div>
<button type="submit">Submit</button>
</form>
觀點:
def auth_validate_username(request):
result = ''
if request.method == 'POST':
username = request.POST.get('username')
if User.objects.filter(username=username):
result='Sorry but this name is already taken'
return HttpResponse(result)
這樣,我先發布值的用戶名。如果用戶名已經存在結果更改,然後我得到它。
訣竅是在獲取請求中放置發佈請求。
您的視圖中的語法錯誤,但是這可能只是一個複製和粘貼的問題,對不對? – Amberlamps
是的。我糾正了它。 – Marcolac
您可能會返回一個包含狀態(「一切正常」或「錯誤」)和錯誤消息(「用戶名已被佔用」,「用戶名太短/長」)的JSON響應......) –