Django窗体集有一个empty_form属性。
empty_form
BaseFormSet提供了一个附加属性empty_form,它返回一个前缀为__prefix__的表单实例,以便更容易地在带有JavaScript的动态表单中使用。
Django文档实际上并没有说明如何用Javascript替换__prefix__。几个在线示例展示了如何使用jQuery来实现它,但我特别想用Javascript - no jQuery来实现。
下面是我的{{ formset.empty_form }}生成的HTML
<div id="prerequisiteEmptyForm">
<input type="text" name="prerequisites-__prefix__-text" maxlength="100" id="id-prerequisites-__prefix__-text">
<label for="id-prerequisites-__prefix__-DELETE">Delete:</label>
<input type="checkbox" name="prerequisites-__prefix__-DELETE" id="id-prerequisites-__prefix__-DELETE">
<input type="hidden" name="prerequisites-__prefix__-id" id="id-prerequisites-__prefix__-id">
<input type="hidden" name="prerequisites-__prefix__-content" value="21" id="id-prerequisites-__prefix__-content">
</div>它到处显示__prefix__,我想用一个数字来代替它.比方说321。
正确的解决方案:
<div id="prerequisiteEmptyForm">
<input type="text" name="prerequisites-321-text" maxlength="100" id="id-prerequisites-321-text">
<label for="id-prerequisites-321-DELETE">Delete:</label>
<input type="checkbox" name="prerequisites-321-DELETE" id="id-prerequisites-321-DELETE">
<input type="hidden" name="prerequisites-321-id" id="id-prerequisites-321-id">
<input type="hidden" name="prerequisites-321-content" value="21" id="id-prerequisites-321-content">
</div>所以我的问题变成了
仅使用Javascript,如何通过多个属性(名称、id)中的多个元素(输入和标签)将常量值("__prefix__")替换为其他值("321")?具体来说,我想为可重复性做干净的。我不想要一个高度定制的解决方案来解决这个特定的问题。这需要一种通用的方法..。既然这正在取代一个常量,那么Javascript肯定有一个干净的方法来做到这一点吗?我仍然在学习Javascript,并试图不那么依赖jQuery。
发布于 2022-05-31 18:33:55
我用了这个概念:
const emptyForm = document.querySelector('#prerequisiteEmptyForm');
clone = emptyForm.cloneNode(deep=true);
clone.innerHTML = clone.innerHTML.replace(/__prefix__/g, '321');https://stackoverflow.com/questions/72452043
复制相似问题