base.htmlにポップアップログインフォームがあります
<div id="login-box" class="login-popup">
<a href="#" class="close"><img src="http://localhost:8000/static/media/close_pop.png" class="btn_close" title="Close Window" alt="Close" /></a>
<form method="post" class="signin" action="{% url login_view %}" id="LoginForm">
<div id="ajaxwrapper">
<fieldset class="textbox">
<label class="username">
<span>Username</span>
<input id="username" name="username" value="" type="text" autocomplete="on" placeholder="Username">
</label>
<label class="password">
<span>Password</span>
<input id="password" name="password" value="" type="password" placeholder="Password">
</label>
<p id="sendwrapper"></p>
<p><button id="submitbutton" type="submit">Sign in</button></p>
<p>
<a class="forgot" href="/accounts/password/reset/">Forgot your password?</a>
</p>
</fieldset>
</div>
</form>
このフォームを送信すると、Djangoビューで次の関数が呼び出されます。
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
print "%s" % repr(request.POST)
print "%s" % repr(request.GET)
cd = form.cleaned_data
user = authenticate(username=cd['username'], password=cd['password'])
print user
if user is not None:
if user.is_active:
login(request, user)
# success
response_dict = 'success'
return render_to_response("tr/login.html", { 'username' : user , 'response_dict' : response_dict })
else:
# disabled account
response_dict = 'The account is disabled'
return render_to_response("tr/login.html", { 'response_dict' : response_dict })
else:
# invalid login
response_dict = 'Username or Password is not correct'
return render_to_response("tr/login.html", { 'response_dict' : response_dict })
else:
print "%s" % repr(form.errors)
ここで、失敗したすべての試行に対してポップアップログインボックスを維持し、成功した試行でそれを閉じたいと思います。このために、私は以下のjQueryコードを試しています。しかし、私はそれを処理する方法がわかりません。
jQuery(function() {
var form = jQuery("#LoginForm");
form.submit(function(e) {
var a = 1;
jQuery("#submitbutton").attr('disabled', true)
jQuery("#sendwrapper").prepend('<span>Sending message, please wait... </span>')
if(a==1){jQuery("#ajaxwrapper").load(
form.attr('action') + ' #ajaxwrapper',
form.serializeArray(),
function(responseText, responseStatus) {
jQuery("#sendwrapper").html('<span> AAAAAAAAAAAAAAA </span>')
jQuery("#sendbutton").attr('disabled', false)
}
)}
else{jQuery("#ajaxwrapper").load(
form.attr('action') + ' #ajaxwrapper',
form.serializeArray(),
function(responseText, responseStatus) {
jQuery("#sendwrapper").html('<span> AAAAAAAAAAAAAAA </span>')
jQuery("#sendbutton").attr('disabled', false)
}
)};
e.preventDefault();
});
});
助けてください!!