从 Django 模板更改表单输出



我有一个表格:

class InspectionReportForm(forms.ModelForm):
class Meta:
model = InspectionReport
fields = ('Date', 'Comment', 'Signature')
labels = {"Date": "Date (YYYY-MM-DD)"}
def __init__(self, *args, **kwargs):
super(InspectionReportForm, self).__init__(*args, **kwargs)
self.fields["Comment"].widget = forms.HiddenInput()
self.fields["Date"].widget = forms.HiddenInput()
self.fields["Signature"].widget = forms.HiddenInput()

除了日期和谁写报告之外,它还存储报告。

在"通过"或"失败"报告的情况下。我想在报告中有一个通用评论,所以这将被自动填充,这就是我隐藏此字段的原因。日期和签名将从提交之日起进行,签名将是登录用户。所以大部分都是自动填充的。

但是,我有一个"也许"选项,它会提示用户发表评论并提交该评论而不是通用评论。

我的问题是如何从项目的HTML模板/Javascript阶段更改表单的注释值?

我当前的代码如下:

<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<center><button type="button" id="pass">Pass</button> 
<button type="button" id="fail">Fail</button>
<button type="button" id="check" class="collapsible">Check</button>
<div class="content"> Comment: <input type="text" name ="comments">
<button id="submitCheck">Submit</button>
</div>
</center>

Check按钮只是一个可折叠的容器,它有一个输入框和一个用于"也许"选项的提交按钮。

就Javascript而言,我真的一无所有,因为我无法直接从这里更改字段值。我尝试过选择带有{%for field in form%}字段,但没有运气

您可以使用 javascript 执行将comment字段的内容复制到隐藏Comment字段中的"肮脏技巧":

$("input[name=comments]").on("change", function(){
$("input[name=Comment]").val($(this).val());
})

或者,我认为更好的方法,不要使用{{ form.as_p }}而是单独呈现字段,以便您可以直接在可折叠对象中渲染{{ form.Comment }}字段。然后你不必在javascript中做任何事情。您可以像这样呈现字段的标签、字段本身和字段错误:

{{ form.Date.label_tag }}
{{ form.Date }}
{{ form.Date.errors }}

最新更新