【发布时间】:2021-01-05 02:16:59
【问题描述】:
我的 Django 应用中有一些表单,如果 Type 字段中的值为等于 整数,否则将其隐藏到该行中的字段。
我该怎么做?
.delete-row {
align-self: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/all.js"></script>
<fieldset>
<legend>Schema columns</legend>
</style> <input type="hidden" name="csv_name-TOTAL_FORMS" value="4" id="id_csv_name-TOTAL_FORMS"> <input type="hidden" name="csv_name-INITIAL_FORMS" value="0" id="id_csv_name-INITIAL_FORMS"> <input type="hidden" name="csv_name-MIN_NUM_FORMS" value="0" id="id_csv_name-MIN_NUM_FORMS"> <input type="hidden" name="csv_name-MAX_NUM_FORMS" value="1000" id="id_csv_name-MAX_NUM_FORMS"> <input type="hidden" name="csv_name-0-id" id="id_csv_name-0-id"> <input type="hidden" name="csv_name-0-csv_file" id="id_csv_name-0-csv_file">
<div class="form-row row form-row spacer mt-2 input-group formset_row-csv_name dynamic-form">
<div class="col col-3">
<div id="div_id_csv_name-0-column_name" class="form-group"> <label for="id_csv_name-0-column_name" class=" requiredField">
Column name<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-0-column_name" maxlength="255" class="textinput textInput form-control" id="id_csv_name-0-column_name"> </div>
</div>
</div>
<div id="seeAnotherField" class="col col-2">
<div id="div_id_csv_name-0-column_type" class="form-group"> <label for="id_csv_name-0-column_type" class=" requiredField">
Type<span class="asteriskField">*</span> </label>
<div class=""> <select name="csv_name-0-column_type" class="select form-control" id="id_csv_name-0-column_type">
<option value="Full Name">Full Name</option>
<option value="Integer">Integer</option>
<option value="Email">Email</option>
<option value="Company">Company</option>
<option value="Job">Job</option>
<option value="Date">Date</option>
<option value="Phone Number">Phone Number</option>
</select> </div>
</div>
</div>
<div id="otherField" class="col col-1">
<div id="div_id_csv_name-0-min_int" class="form-group __web-inspector-hide-shortcut__"> <label for="id_csv_name-0-min_int" class="">
From
</label>
<div class=""> <input type="text" name="csv_name-0-min_int" class="textinput textInput form-control" id="id_csv_name-0-min_int"> </div>
</div>
</div>
<div id="otherField" class="col col-1 __web-inspector-hide-shortcut__">
<div id="div_id_csv_name-0-max_int" class="form-group"> <label for="id_csv_name-0-max_int" class="">
To
</label>
<div class=""> <input type="text" name="csv_name-0-max_int" class="textinput textInput form-control" id="id_csv_name-0-max_int"> </div>
</div>
</div>
<div class="col col-2">
<div id="div_id_csv_name-0-column_order" class="form-group"> <label for="id_csv_name-0-column_order" class=" requiredField">
Order<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-0-column_order" value="1" class="textinput textInput form-control" id="id_csv_name-0-column_order"> </div>
</div>
</div>
<a class="delete-row btn-sm btn-danger" href="javascript:void(0)">Delete</a>
</div>
<div class="form-row row form-row spacer mt-2 input-group formset_row-csv_name dynamic-form">
<div class="col col-3">
<div id="div_id_csv_name-1-column_name" class="form-group"> <label for="id_csv_name-1-column_name" class=" requiredField">
Column name<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-1-column_name" maxlength="255" class="textinput textInput form-control" id="id_csv_name-1-column_name"> </div>
</div>
</div>
<div id="seeAnotherField" class="col col-2">
<div id="div_id_csv_name-1-column_type" class="form-group"> <label for="id_csv_name-1-column_type" class=" requiredField">
Type<span class="asteriskField">*</span> </label>
<div class=""> <select name="csv_name-1-column_type" class="select form-control" id="id_csv_name-1-column_type">
<option value="Full Name">Full Name</option>
<option value="Integer">Integer</option>
<option value="Email">Email</option>
<option value="Company">Company</option>
<option value="Job">Job</option>
<option value="Date">Date</option>
<option value="Phone Number">Phone Number</option>
</select> </div>
</div>
</div>
<div id="otherField" class="col col-1 __web-inspector-hide-shortcut__">
<div id="div_id_csv_name-1-min_int" class="form-group"> <label for="id_csv_name-1-min_int" class="">
From
</label>
<div class=""> <input type="text" name="csv_name-1-min_int" class="textinput textInput form-control" id="id_csv_name-1-min_int"> </div>
</div>
</div>
<div id="otherField" class="col col-1 __web-inspector-hide-shortcut__">
<div id="div_id_csv_name-1-max_int" class="form-group"> <label for="id_csv_name-1-max_int" class="">
To
</label>
<div class=""> <input type="text" name="csv_name-1-max_int" class="textinput textInput form-control" id="id_csv_name-1-max_int"> </div>
</div>
</div>
<div class="col col-2">
<div id="div_id_csv_name-1-column_order" class="form-group"> <label for="id_csv_name-1-column_order" class=" requiredField">
Order<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-1-column_order" value="1" class="textinput textInput form-control" id="id_csv_name-1-column_order"> </div>
</div>
</div>
<a class="delete-row btn-sm btn-danger" href="javascript:void(0)">Delete</a>
</div>
<div class="form-row row form-row spacer mt-2 input-group formset_row-csv_name dynamic-form">
<div class="col col-3">
<div id="div_id_csv_name-2-column_name" class="form-group"> <label for="id_csv_name-2-column_name" class=" requiredField">
Column name<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-2-column_name" maxlength="255" class="textinput textInput form-control" id="id_csv_name-2-column_name"> </div>
</div>
</div>
<div id="seeAnotherField" class="col col-2">
<div id="div_id_csv_name-2-column_type" class="form-group"> <label for="id_csv_name-2-column_type" class=" requiredField">
Type<span class="asteriskField">*</span> </label>
<div class=""> <select name="csv_name-2-column_type" class="select form-control" id="id_csv_name-2-column_type">
<option value="Full Name">Full Name</option>
<option value="Integer">Integer</option>
<option value="Email">Email</option>
<option value="Company">Company</option>
<option value="Job">Job</option>
<option value="Date">Date</option>
<option value="Phone Number">Phone Number</option>
</select> </div>
</div>
</div>
<div id="otherField" class="col col-1">
<div id="div_id_csv_name-2-min_int" class="form-group"> <label for="id_csv_name-2-min_int" class="">
From
</label>
<div class=""> <input type="text" name="csv_name-2-min_int" class="textinput textInput form-control" id="id_csv_name-2-min_int"> </div>
</div>
</div>
<div id="otherField" class="col col-1">
<div id="div_id_csv_name-2-max_int" class="form-group"> <label for="id_csv_name-2-max_int" class="">
To
</label>
<div class=""> <input type="text" name="csv_name-2-max_int" class="textinput textInput form-control" id="id_csv_name-2-max_int"> </div>
</div>
</div>
<div class="col col-2">
<div id="div_id_csv_name-2-column_order" class="form-group"> <label for="id_csv_name-2-column_order" class=" requiredField">
Order<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-2-column_order" value="1" class="textinput textInput form-control" id="id_csv_name-2-column_order"> </div>
</div>
</div>
<a class="delete-row btn-sm btn-danger" href="javascript:void(0)">Delete</a>
</div>
<div class="form-row row form-row spacer mt-2 input-group formset_row-csv_name dynamic-form">
<div class="col col-3">
<div id="div_id_csv_name-3-column_name" class="form-group"> <label for="id_csv_name-3-column_name" class=" requiredField">
Column name<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-3-column_name" maxlength="255" class="textinput textInput form-control" id="id_csv_name-3-column_name"> </div>
</div>
</div>
<div id="seeAnotherField" class="col col-2">
<div id="div_id_csv_name-3-column_type" class="form-group"> <label for="id_csv_name-3-column_type" class=" requiredField">
Type<span class="asteriskField">*</span> </label>
<div class=""> <select name="csv_name-3-column_type" class="select form-control" id="id_csv_name-3-column_type">
<option value="Full Name">Full Name</option>
<option value="Integer">Integer</option>
<option value="Email">Email</option>
<option value="Company">Company</option>
<option value="Job">Job</option>
<option value="Date">Date</option>
<option value="Phone Number">Phone Number</option>
</select> </div>
</div>
</div>
<div id="otherField" class="col col-1">
<div id="div_id_csv_name-3-min_int" class="form-group"> <label for="id_csv_name-3-min_int" class="">
From
</label>
<div class=""> <input type="text" name="csv_name-3-min_int" class="textinput textInput form-control" id="id_csv_name-3-min_int"> </div>
</div>
</div>
<div id="otherField" class="col col-1">
<div id="div_id_csv_name-3-max_int" class="form-group"> <label for="id_csv_name-3-max_int" class="">
To
</label>
<div class=""> <input type="text" name="csv_name-3-max_int" class="textinput textInput form-control" id="id_csv_name-3-max_int"> </div>
</div>
</div>
<div class="col col-2">
<div id="div_id_csv_name-3-column_order" class="form-group"> <label for="id_csv_name-3-column_order" class=" requiredField">
Order<span class="asteriskField">*</span> </label>
<div class=""> <input type="text" name="csv_name-3-column_order" value="1" class="textinput textInput form-control" id="id_csv_name-3-column_order"> </div>
</div>
</div>
<a class="delete-row btn-sm btn-danger" href="javascript:void(0)">Delete</a>
</div><a class="add-row btn btn-success" href="javascript:void(0)">Add column</a> <br>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/static/libraries/django-dynamic-formset/jquery.formset.js"></script>
</fieldset>
https://i.stack.imgur.com/3IcXM.png
更新:我将我的代码添加为带有类名和字段 ID 的 sn-p。所以我需要检查每一行和邻居
【问题讨论】:
-
尼克,我们需要查看一些代码来正确地帮助您,而不是很难。我只能说以正确的方式帮助您:遍历每一行 - >找到选择并查看所选值/文本是否匹配“整数” - >如果没有找到“从/到”字段并隐藏它们。
标签: javascript jquery django django-crispy-forms