使用JavaScript在Django中动态呈现表单
所以我是Django的新手,也是JavaScript的新手。我试图创建一个视图,使用JavaScript动态呈现多个表单。下面是我创建的两个表单使用JavaScript在Django中动态呈现表单,javascript,jquery,django,django-forms,Javascript,Jquery,Django,Django Forms,所以我是Django的新手,也是JavaScript的新手。我试图创建一个视图,使用JavaScript动态呈现多个表单。下面是我创建的两个表单 class CreateTestForm(forms.ModelForm): class Meta: model = Test fields = ['name', 'test_group', 'description', 'query_text', 'failure_condition', 'status'] def getKey(s
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"
和模板:
<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" />
{%csrf_令牌%}
{{create_test_form.as_ul}
选择验证类
{val_类在所有_验证_类%}
{{val_class.id}{{val_class.name}
{%endfor%}
函数showForm(){
var x=document.getElementById(“验证类id”).value;
}
我试图得出这样一个结论,当用户从下拉列表(validation\u classes\u 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">
{%csrf_令牌%}
{{form}}
尝试以下方法:
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">
{%csrf_令牌%}
{{form}}
当您想多次动态显示同一表单时,您会使用Dot Formset work only吗?当您想多次动态显示同一表单时,您会使用Dot Formset work only吗?