在Django中使用JavaScript动态渲染表单
Using JavaScript to render forms dynamically in Django
我是Django的新手,也是JavaScript的新手。我试图创建一个视图,动态呈现多个表单使用JavaScript。下面是我创建的两个表单。
class CreateTestForm(forms.ModelForm):
class Meta:
model = Test
fields = ['name', 'test_group', 'description', 'query_text', 'failure_condition', 'status']
def getKey(self):
return "create_test_form"
class VC1Form(CreateTestForm):
expected_relation = forms.ChoiceField(choices = [('<','<'), ('>','>'), ('=','='), ('<=','<='), ('>=','>='), ('!=','!=')], required = True, label = 'Expected Relation: ')
num_rows = forms.IntegerField()
def getKey(self):
return "vc1_form"
另外,我有以下视图
def create_test(request):
context = {
'all_validation_classes': ValidationClass.objects.all()
}
for form in [CreateTestForm, VC1Form]:
if request.method == 'POST':
f=form(request.POST)
if (f.is_valid()):
return HttpResponseRedirect('/test_created/')
else:
return HttpResponseRedirect('/test_not_created/')
else:
f = form()
context[f.getKey()] = f
return render(request, 'create_test.html', context)
和模板:
<form action="/tests/create/" method="post">
{% csrf_token %}
{{create_test_form.as_ul}} <br><br>
<select id="validation_classes_id" name="all_validation_classes" onchange="showForm()">
<option value="%">Choose the validation class</option>
{% for val_class in all_validation_classes %}
<option value="{{ val_class.id }}">{{ val_class.id}} {{val_class.name }}</option>
{% endfor %}
</select>
<br><br>
<script>
function showForm(){
var x = document.getElementById("validation_class_id").value;
}
</script>
<input type="submit" value="Submit" />
我试图到达一个点,在那里,当用户从下拉菜单(validation_classes_id)中选择一些东西时,视图将呈现与该选择相对应的表单。我目前只包括一个额外的形式VC1Form在这里,但我已经写了不同的形式对应于下拉菜单中的每个选项。我已经尝试了一些事情,但没有工作,任何帮助将不胜感激!
试试这样做:
document.getElementById('form').querySelectorAll("label").forEach( e =>
{e.prepend(document.createElement("br"));});
更好的是:
<form id="form" action="login_view" method="post">
{% csrf_token %}
<table>
{{ form }}
</table>
<input type="submit" value="register">
相关文章:
- jQuery动态表单显示在select选项上
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- Small Javascript从动态表单中删除多个元素的问题
- Php,Javascript-动态表单id's和动态验证
- 在动态表单的可见部分中,如何使用javascript生成所需的某些字段
- AngularJS中的动态表单验证 - 是否有更好的解决方案/方法
- 如何添加动态表单元素但保留其值(JS)
- jquery在动态表单输入上验证插件不起作用
- Angularjs在js中绑定动态表单构建
- 正在使用ng消息验证动态表单
- 将动态表单元素限制为最多10个记录
- onchange使用PHP和jQuery对动态表单输入进行计算
- 如何将动态表单保存到数据库/编辑回表单
- 生成动态表单输入字段,并在angularJS中以数组形式收集字段数据
- 基于select选项的javascript动态表单生成
- 具有大型动态表单的主干js
- 如何在Struts1中映射和读取我的动态表单条目
- 如何在java框架(JSF)中基于URL的json响应生成动态表单
- Handlebar.js模板,使用Undercore.js-Zendesk应用程序进行动态表单输入
- 如何针对生成的所有动态表单的Input元素