我在django中有一个自定义表单。它正常工作,每当我对它应用javascript验证而不是验证不起作用。我想用javascript验证它。它显示警告消息但没有重定向表单。
表格: -
<form method="POST" action="#" class="form-horizontal" id="userform" name="uform" enctype="multipart/form-data" >{% csrf_token %}
<fieldset>
<div class="control-group formSep">
<label for="u_id" class="control-label">App Id </label>
<div class="controls">
<input type="text" id="appid" class="input-xlarge" name="appid" value="" />
</div>
</div>
<div class="control-group">
<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>
</div>
</fieldset>
</form>
在views.py中: -
@csrf_exempt
def applicationform(request):
if request.method == 'POST':
getappid = request.POST['appid']
getjobtitle=request.POST['jobtitle']
odeskid=request.POST['odeskid']
clientspent=request.POST['client_spent']
jobtype=request.POST['jobtype']
notestype=request.POST['notes']
request.session['setid'] = request.POST['appid']
if getappid == '':
return HttpResponse('<script> alert("fill app id"); </script>')
else:
getintable = application(app_id = request.POST['appid'], job_title = request.POST['jobtitle'], odesk_id = request.POST['odeskid'],client_spent = request.POST['client_spent'], job_type = request.POST['jobtype'],notes_type = request.POST['notes'])
getintable.save()
return HttpResponseRedirect('/applicationview/')
else:
return render_to_response('applicationform.html')
答案 0 :(得分:1)
在警告声明中执行脚本后重定向
@csrf_exempt
def applicationform(request):
if request.method == 'POST':
getappid = request.POST['appid']
getjobtitle=request.POST['jobtitle']
odeskid=request.POST['odeskid']
clientspent=request.POST['client_spent']
jobtype=request.POST['jobtype']
notestype=request.POST['notes']
request.session['setid'] = request.POST['appid']
if getappid == '':
return HttpResponse('<script> alert("fill app id"); document.location.href="redirect url" </script>') #change here
else:
getintable = application(app_id = request.POST['appid'], job_title = request.POST['jobtitle'], odesk_id = request.POST['odeskid'],client_spent = request.POST['client_spent'], job_type = request.POST['jobtype'],notes_type = request.POST['notes'])
getintable.save()
return HttpResponseRedirect('/applicationview/')
else:
return render_to_response('applicationform.html')
答案 1 :(得分:0)
表单操作需要网址
<form method="POST" action="/applicationview/" class="form-horizontal" id="userform" name="uform" enctype="multipart/form-data" >
答案 2 :(得分:0)
使用return False;
$('#userform').submit(function(){
var textVal = $("#appid").val();
if(textVal == "") {
alert('Text Field Cannot be Empty');
return false;
})
如果你想留在同一页面,请使用返回false
或
如果您想重定向到特定页面,请使用 update_content_div('url');