#php #forms #validation
#php #формы #проверка
Вопрос:
Я создаю динамическую форму, которая просит пользователей выбрать определенные даты и присвоить вес этой конкретной дате. Пользователь может свободно добавлять до 12 входных данных, используя кнопку «Новая строка».
Мне нужно проверить эту форму и убедиться, что пользователь не выбирает один и тот же ввод даты в поле выбора и что весовые значения для всех добавленных вводимых дат равны 100. Я не уверен, что использовать для части проверки.
Пока я могу только убедиться, что формы не пусты при попытке отправки.
Вот мой HTML-и JS-код для динамической формы
HTML:
<form method="post" action="viewInventory.php" id="insert_form">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-body">
<div class="table-repsonsive">
<table class="table table-borderless" id="item_table">
<tr>
<th>Month</th><br>
<th>Weight</th>
</tr>
<tr>
<input class = 'form-control' type = 'hidden' name = 'example' value = 8>
<td><select name="month[]" class="form-control item_unit" required><option value="" disabled>Select Product</option><option value="01">January</option><option value="02">February</option><option value="03">March</option><option value="04">April</option><option value="05">May</option><option value="06">June</option><option value="07">July</option><option value="08">August</option><option value="09">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select></td>
<td><input type="number" name="weight[]" class="form-control item_name" required /></td>
<td><button type="button" name="add" class="btn btn-success btn-sm add"> </button></td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div align="center">
<a href="#confirm" data-target="#confirm" data-toggle="modal"><button type="button" class="btn btn-success">Submit</button></a>
</div>
</div>
<!-- // modal -->
<div id="confirm" class="modal fade" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4>Notice</h4>
<button type="button" class="close" data-dismiss="modal">amp;times;</button>
</div>
<div class="modal-body">
<div class="text-center">
<p>
<h6>Confirm Job Order?</h6>
</p>
</div>
<div class="modal-footer">
<input type="submit" id="submit" name="choose" class="btn btn-success" value="Continue" />
<button type="button" class="btn btn-default btn-outline-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
</form>
И мой JS:
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '.add', function(){
var html = '';
html = '<tr>';
html = '<td><select name="month[]" class="form-control item_unit"><option value="">Select Month</option><option value="01">January</option><option value="02">February</option><option value="03">March</option><option value="04">April</option><option value="05">May</option><option value="06">June</option><option value="07">July</option><option value="08">August</option><option value="09">September</option><option value="10">October</option><option value="11">November</option><option value="12">December</option></select></td>';
html = '<td><input type="number" name="weight[]" class="form-control item_name" required /></td>';
html = '<td><button type="button" name="remove" class="btn btn-danger btn-sm remove">x</button></td></tr>';
$('#item_table').append(html);
});
$(document).on('click', '.remove', function(){
$(this).closest('tr').remove();
});
});
</script>
Пользователь не сможет продолжить, если общий вес не будет равен 100 и если в полях выбора нет повторяющихся записей.
Комментарии:
1. В какой части конкретно вы застряли? Выполняете ли вы проверку на JavaScript, PHP или на обоих? Вы спрашиваете, как считывать значения из ваших
select
элементов? Что вы пробовали и почему это не сработало?2. @David это чтение элементов проверка. Я не уверен, что мне следует использовать для этого. Возможно, Jquery или JS. Извините, я действительно не понимаю, что мне нужно делать
3. Мы понимаем, что вы находите это непосильным, но важно, чтобы вопросы здесь были конкретными. Если первое, что вы хотите сделать, это прочитать значения с помощью jQuery, то начните с выбора jQuery для ваших элементов. Что-то вроде:
$('select[name="month[]"]')
Это должно выделить вашиselect
элементы. Вы можете перебирать результаты, проверять значения, выполнять свою логику и т.д.