在我的django
应用程序中,我显示了一个页面,该页面有一个。button
该starts and stops a clock
页面有一个form
用户可以在其中输入一些详细信息,如名称、描述等并提交。最初div
包含此表单的内容隐藏display:none
在 css 中。仅显示按钮,单击时钟开始运行。当用户再次按下相同的按钮时,时钟停止并且隐藏的表单可见。
我通过使用为按钮“开始”和“停止”提供状态值的 javascript 来做到这一点。如果用户单击它并相应地更改状态,我已经编写了一个函数。
var buttonStatusChange= function(){
var buttonstatus = $('#clockbtn').attr("value");
if (buttonstatus == "start"){
$('#clockbtn').attr("value","stop");
...
hideElement("userinputdiv");
}else if (buttonstatus == "stop"){
$('#clockbtn').attr("value","start");
...
showElement("userinputdiv");
}
};
var showElement=function(elementId){
var elem_selector='#'+elementId;
$(elem_selector).show();
};
var hideElement=function(elementId){
var elem_selector='#'+elementId;
$(elem_selector).hide();
};
在我的 django 视图中,我正在验证帖子中的userinputform
和其他forms
。如果验证失败,则会显示原始表单(现在该字段旁边有错误)。
def my_view(request,...):
if request.method=='POST' and otherform.is_valid():
...
userinputform_is_valid = userinputform.is_valid()
if not userinputform_is_valid:
return custom_render(request,context,template_name)
...
#otherwise get values from form,save etc..
def custom_render(request,context,template):
req_context=RequestContext(request,context)
return render_to_response(template,req_context)
页面的html
....
<div id="userinputdiv">
....
<form ...>
<p>
<span id="myfield">Enter WholeNumber:</span>
{{my_form.myfield}}{{my_form.myfield.errors}}
</p>
...
不幸的是,由于 css 对 userinputdiv 有一个 display:none,该 div 是隐藏的,所以用户看不到错误。他现在看到的是一个只有一个按钮的页面,可以启动/停止时钟。如果我取页面,错误在那里<ul class="errorlist ...>
所以,我想知道如果在发布期间发生任何验证错误,如何使用户输入表单对用户可见。如果我制作 css userinputdiv
display:block
,页面中的错误将按预期显示 - 但显示所有输入字段,甚至在任何时钟之前运行..我不希望这种情况发生,因为我使用时钟的开始和结束时间作为隐藏字段,在帖子中发送并在我的 django 视图中处理