I'm submitting a form through a modal. Based on user input, some data will need sent to the modal. I need to validate the data before loading the modal. The current code prevents showing the modal if no orders are selected, but once the user selects some orders and resubmits the form, the modal still doesn't show.
JS
function batchHoldModalLauncher($hold_name){
// get modal id
var modal_id = "#"+$hold_name+"_modal_id";
// check if any orders are selected
if ($("#order_hold_table_body input:checkbox:checked").length > 0)
{
$(modal_id).modal('show');
}
else
{
// no boxes checked
$('.modal').on('show.bs.modal', function() {
return false;
});
alert('Choose some orders to put on hold');
}
}
Laravel PHP Code where form is submitted and modal is called
<div class="col-md-3" style="margin-top: 20px;">
{!! Form::open(['url' => '/hold', 'method' => 'POST', 'class' => 'form-inline']) !!}
<h4>
Orders for Batch {{ $batch->id }}
<div class="btn-group">
<button type="button" class="btn btn-sm btn-danger dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Hold <span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-danger">
@foreach($holds as $hold)
<?php $hold_name = str_replace(' ', '', $hold->name); ?>
<li><a href="#" data-toggle="modal" onclick="batchHoldModalLauncher('{{ $hold_name }}')"
data-target="#modal{{ $hold_name }}">{{ $hold->name }}</a></li>
@endforeach
</ul>
</div>
</h4>
<!-- Show each order in batch and allow user to place orders on hold -->
<table class="table table-striped" id="order_hold_table">
<thead>
<th>Order Number</th>
<th>Hold
<!-- de/select all checkboxes -->
{!! Form::checkbox('hold_toggle', null, false, [
'class'=>'toggle-button',
'style'=>'float:right'
]) !!}</th>
</thead>
<tbody id="order_hold_table_body">
@foreach($orders as $o)
<tr>
<td>
@if($type == 'receiving')
{{ $o->id }}
@elseif($type == 'sales')
{{ $o->order_number }}
@endif
</td>
<td>
{!! Form::checkbox('hold[]', $o->id, false, ['style'=>'float:right']) !!}
</td>
</tr>
@endforeach
</tbody>
</table>
{!! Form::close() !!}