javascript-如果select2为空,则将输入字段设为必填
发布时间:2022-05-11 21:55:04 367
相关标签: # 前端
我有一个文本字段和一个 select2 字段。用户可以在输入字段中输入内容,但也可以从 select2 字段中选择预定义的选项。
我想做以下事情:如果选择了select2,则表单通过,如果没有,则需要输入字段并且表单无法通过。
我已经在后端(Django)中创建了一个逻辑,将 select2 的值复制到文本字段中,以确保所有数据都有效,但是如果我在没有验证的情况下离开前端,用户可以将所有内容留空并提交一个空的形式。
这是我的html:
<table id="myTable" class="table order-list">
<thead>
<tr>
<td>Médicament</td>
<td>Dosage</td>
<td>Posologie</td>
<td>Durée</td>
<td></td>
</tr>
</thead>
<tbody>
<tr>
<td class="col-5">
<div class="row">
<div class="col-6">
<input class="form-control mb-4" placeholder="Nom du médicament" type="text" name="medicament0">
</div>
<div class="col-6">
<div class="form-group">
<select class="form-control select2-show-search form-select" id="medicament-id0" name="listemedicament0">
<option value="0">Ou choisir de la liste</option>
{% for d in drugs %}
<option value="{{ d.id }}">{{ d }}</option>
{% endfor %}
</select>
</div>
</div>
</div>
</td>
<td>
<input class="form-control mb-4" placeholder="20mg" type="text" name="dosage0">
</td>
<td>
<input class="form-control mb-4" placeholder="2 / j avant repas" type="text" name="posologie0">
</td>
<td>
<input class="form-control mb-4" placeholder="7 jours" type="text" name="duree0">
</td>
<td><a class="deleteRow"></a>
<input type="button" class="btn btn-lg btn-secondary " id="addrow" value="Ajouter élément" />
</td>
</tr>
</tbody>
</table>
如果用户想要提交多个条目,我也有这个 javascript 添加动态行:
<script>
$(document).ready(function () {
var counter = 1;
$("#addrow").on("click", function () {
var newRow = $("<tr>");
var cols = "";
cols += '<td class="col-5"><div class="row"><div class="col-6">' +
'<input class="form-control medic-field mb-4" placeholder="Nom du médicament" type="text" name="medicament'+ counter +'">' +
'</div><div class="col-6"> <div class="form-group">' +
'<select class="form-control select2-show-search form-select" id="medicament-id0" name="listemedicament'+ counter +'">' +
'<option value="0">Ou choisir de la liste</option> {% for d in drugs %} <option value="{{ d.id }}">{{ d }}</option>' +
'{% endfor %} </select> </div></div></div>' +
'</td>' +
'<td><input class="form-control mb-4" placeholder="20mg" type="text" name="dosage'+ counter +'"></td>' +
'<td><input class="form-control mb-4" placeholder="2 / j avant repas" type="text" name="posologie'+ counter +'"></td>' +
'<td><input class="form-control mb-4" placeholder="7 jours" type="text" name="duree'+ counter +'"></td>' +
'<td><a href="javascript:void(0);"><i class="ibtnDel fa fa-2x fa-close" style="color: red;"></i></a></td>';
newRow.append(cols);
$("table.order-list").append(newRow);
//Initialize Select2 Elements
$('.select2-show-search').select2();
$("table.order-list").append('<input type="hidden" name="counter" value="' + counter + '"/>');
counter++;
});
$("table.order-list").on("click", ".ibtnDel", function (event) {
$(this).closest("tr").remove();
counter -= 1
});
});
</script>
这是两个字段:
<input class="form-control mb-4" placeholder="Nom du médicament" type="text" name="medicament0">
...
<select class="form-control select2-show-search form-select" id="medicament-id0" name="listemedicament0">
<option value="0">Ou choisir de la liste</option>
{% for d in drugs %}
<option value="{{ d.id }}">{{ d }}</option>
{% endfor %}
</select>
所以我的问题是如果我将输入(id medicament-id0)留空,并且选择字段不为空,则表单将通过,如果选择字段为空,则应该需要输入。
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报