フォームがあり、JavaScript 検証を使用しています。フォームにリダイレクトするときにアラートを表示した後、すべてのフィールドの値を空にします。カスタムフォーム:
form method="POST" action="#" class="form-horizontal" name="jform" enctype="multipart/form-data" >{% csrf_token %}
<fieldset>
<div class="control-group formSep">
<label for="u_fname" class="control-label">oDesk Id</label>
<div class="controls">
<input type="text" class="input-xlarge" name="odesk" value="" />
</div>
</div>
<div class="control-group formSep">
<label for="u_fname" class="control-label">Hours</label>
<div class="controls">
<input type="text" class="input-xlarge" name="hours" value="" />
</div>
</div>
<div class="controls">
<button class="btn btn-gebo" type="submit" name="asubmit">Submit</button>
<input type="reset" name="reset" value="Cancel" class="btn btn-gebo" />
</div>
views.py で:-
@csrf_exempt
def odesk(request):
if request.method == 'POST':
odeskid=request.POST['odesk']
hours = request.POST['hours']
feedback= request.POST['feedback']
if odeskid == '':
return HttpResponse('<script> alert("fill odesk id here "); document.location.href="/odesks/"; </script>')
if hours == '':
return HttpResponse('<script> alert("fill total hours"); document.location.href="/odesks/"; </script>')
if feedback == '':
return HttpResponse('<script> alert("fill feedback "); document.location.href="/odesks/"; </script>')
else:
getintable = odesktable(odeskid = request.POST['odesk'], hours = request.POST['hours'], feedback = request.POST['feedback'])
getintable.save()
return render_to_response('odeskform.html')
else:
return render_to_response('odeskform.html')
動作していますが、リダイレクトするとアラートが発生し、すべてのフィールドがクリアされます。