我有一个html输入字段,如下所示:
const sortMe = arr => {
let sorted = new Array(arr.length).fill(0);
for(let i = 0; i < sorted.length; i++){
if(sorted.indexOf(arr[i]) === -1)
sorted[arr[i] - 1] = arr[i];
else sorted.splice(sorted.indexOf(arr[i]), 0, arr[i]);
}
return sorted.filter(x => x !== 0);
}
console.log(sortMe([3,15,2,1,18,2,5,6,7,12,3,1,2,3]))
在这里,<input type="number" name="bha_number" value="5" disabled="disabled" class="form-control django-input-form" required="" id="id_bha_number">
通过以下代码预先填充在我的视图中:
value="5"
提交表单时,使用以下方法覆盖我的context['bha_list_form'].fields['bha_number'].widget.attrs['value'] = last_bha_number + 1
context['bha_list_form'].fields['bha_number'].widget.attrs['disabled'] = 'disabled'
方法来打印表单:
post()
它打印此:
bha_list_form = BHA_List_Form(request.POST)
print(bha_list_form)
这意味着用户未填写表单字段。但是据我了解,填写表格与将<tr>
<th><label for="id_bha_number">Bha number:</label></th>
<td>
<ul class="errorlist">
<li>This field is required.</li>
</ul>
<input type="number" name="bha_number" required id="id_bha_number" />
</td>
</tr>
设置为相等具有相同的效果。因此,如果我通过手动设置html value attr
来预填充该字段,它仍应将其识别为用户输入,但不是。
我知道我的表格是正确的,因为如果我不预先填写值,而是实际填写表格,它将显示以下内容:
html value
所以我预填写表单字段的方式一定有问题。我该如何实现?
++我想在不修改表单 forms.py 的情况下执行此操作,因为此预填充将特定于此页面。