Моя форма автоматически сгенерировала поля множественного выбора. Это означает, что я не знаю, сколько из них будет создано (зависит от входного файла). Кроме того, select name нельзя использовать, поскольку он автоматически генерируется особым образом, поэтому я предполагаю, что в jQuery мне придется использовать либо класс, либо ID.
Я уже пробовал несколько вариантов, которые нашел в stackoverflow и т. Д. и лучшим из того, что я смог получить, был мой код ниже. На самом деле он проверяет, выбрана ли хотя бы одна опция, но по всем представленным полям множественного выбора. Так что, если у меня есть 10 полей, в одном из них было выбрано одно, этого достаточно, чтобы сработала кнопка отправки, а это не то, что мне нужно.
* Theres часть jQuery:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script>
$(function () {
$('#myForm').submit(function () {
var isValid = true;
var form = this;
isValid = isValid && validateMultipleSelect($('select.required', form));
return isValid;
});
});
function validateMultipleSelect(select) {
var number = $('option:selected', select).size();
alert("Select at least one option in each column per Vendor")
return (number > 0);
}
</script>
Теперь это часть формы:
<form action="{% url 'index' %}" method="post" id="myForm">
{% csrf_token %}
<p></p>
<hr>
{% for vendor in vendor_list %}
{{ vendor.vendor_name }}
{% for columns in vendor.option_list %}
<select class="required" multiple id="required" name = '{{ columns.column_name }} {{ vendor.vendor_id }}'>
<option value = {{ columns.column_name }} disabled> {{ columns.column_name }}</option>
{% for option in columns.column_options %}
<option value= "{{ option }}"> {{ option }} </option>
{% endfor %}
<br>
</select>
{% endfor %}
<br><br>
{% endfor %}
Я попытался определить длину множества полей выбора, которые у меня есть, поэтому, если у меня есть 10 полей выбора, тогда условие может быть «не менее 10 вариантов». выбран. Но если из нескольких полей выбора один из них имеет 10 параметров, в этом поле выбора можно выбрать 10, а в любом другом поле выбора можно выбрать ноль, что все равно позволит работать кнопке отправки (так как было выбрано 10 параметров), чтоэто не то, что я хочу.
Мне нужно проверить каждое из полей выбора как минимум для ОДНОЙ выбранной опции. Таким образом, во всех этих полях выбора должен быть выбран хотя бы один параметр, чтобы кнопка отправки работала.
Так что это не должно работать (поскольку страна последнего ряда не выбрана):

И это должно работать:

Заранее благодарю за любую помощь!