У меня есть форма регистрации, где вы можете выбрать различные предметы, и их цена должна сложиться и войти в поле ввода Price
. Единственное, что не работает должным образом, это вычисления.
Если вы установите 1 флажок, он добавится, но когда вы добавите еще 1, он не рассчитает. Я не уверен, правильно ли я использовал toFixed()
. Кто-нибудь знает в чем проблема? Заранее спасибо.
Другое дело: Когда вы устанавливаете флажок, требуется дополнительная выборка с этим идентификатором. это работает, но делает все необходимые выборы. Я не уверен, почему, так как я поставил «id_number» с «экстраопциями». Если кто-нибудь сможет мне помочь, это будет очень признательно!
<label>Price</label>
<input type="text" name="price" id="price" class="form-control price" data-blocked="<>{}" value="{{ ($cache['price'] ?? old('price') ?? $registration->isg_price ?? $distance_price) }}" readonly>
<!-- foreach to get the extra options and the extras, because they come from another table -->
<label>options</label><br>
@foreach($option_array as $option)
<div>
<input type="checkbox" class="option" id="option_{{ $option->exa_id }}" name="option_{{ $option->exa_id }}" value="{{ $option->exa_id }}" {{ isset($cache) ? (isset($cache['option_' . $option->exa_id]) ? 'checked' : '') : (old() ? (old('option_' . $option->exa_id) ? 'checked' : '') : ($registration ? (in_array($option->exa_id, $registration_options) ? 'checked' : '') : '')) }} >
<input type="hidden" value="{{ $option->exa_price }}" class="option_price_{{ $option->exa_id }}">
<label>{{ $option->exa_name }}</label>
<label class="exa_price">€{{ $option->exa_price }}</label>
</div>
<select name="extraoptions_{{ $option->exa_id }}" class="form-control extraoptions" id="extraoptions_{{ $option->exa_id }}">
<option></option>
@foreach($option->extraoptions as $extraoption)
<option value="{{ $extraoption->eos_id }}" {{ ($registration ? (in_array($extraoption->eos_id, $registration_options_extra) ? 'selected' : '') : '') }}>{{ $extraoption->eos_name }}</option>
@endforeach
</select>
<br>
@endforeach
$(document).ready(function() {
set_options();
$(".option").change(function() {
set_options();
});
});
function set_options() {
// participant is also a value we have to add up. (this works)
var total_price = parseFloat($("#participant").val());
$(".option").each(function() {
var id = $(this).attr('id'); // we take the id of the options
var id_number = id.split("_")[1];
var option_price = parseFloat($(".option_price_" + id_number).val());
if (this.checked) {
//the calculation
total_price = parseFloat(total_price + option_price).toFixed(2);
$("#extraoptions_" + id_number).attr('required', 'True');
} else {
$("#extraoptions_" + id_number).attr('required', 'False');
}
});
parseFloat($("#price").val(total_price)).toFixed(2);
}