Добавлять value при checkbox checked
Постараюсь быть кратким.
В форме есть hidden input со стартовым значением. Так же есть 2 checkbox input, которые должны добавлять значение в атрибут value при checked="true" и убирать при checked="false" ранее упомянутого hidden input. Пытаюсь реализовать на это jQuery, но уже второй час не могу сдвинуться с места.
Форма:
<div class="form-additionals">
<label class="label">
<input type="checkbox" id="checkbox" class="checkbox-hide" name="checkbox">
<span class="fake-check"></span>
<span class="checkbox-text">Чекбокс1</span>
</label>
<label class="label">
<input type="checkbox" id="checkbox2" class="checkbox-hide" name="checkbox2">
<span class="fake-check"></span>
<span class="checkbox-text">Чекбокс2</span>
</label>
</div>
<input class="lv-input-goods" id="lv-formLanding1-goods" type="hidden" value="{"offer_leather-china1":{"quantity":1,"sum":"260"}}" name="FormLanding[goods]" />
Скрипт, который есть на данный момент. Он для первого checkbox
$(function(){
$('#checkbox').on('change', function(){
if($('#checkbox').prop('checked')){
$('#lv-formLanding1-goods').val('{"offer_leather-china1":{"quantity":1,"sum":"260"},"offer_grunt":{"quantity":1,"sum":"220"}}');
}else{
$('#lv-formLanding1-goods').val('{"offer_leather-china1":{"quantity":1,"sum":"260"}}');
}
});
});
При отправке формы значение hidden input не меняется. Надеюсь на вашу помощь.
Заранее огромное спасибо и + в карму!
Ответы (1 шт):
Автор решения: Denis640Kb
→ Ссылка
Всё дело в экранировании поля input:
$(function(){
$('#checkbox').on('change', function(){
if($('#checkbox').prop('checked')){
$('#lv-formLanding1-goods').val('{"offer_leather-china1":{"quantity":1,"sum":"260"},"offer_grunt":{"quantity":1,"sum":"220"}}');
}else{
$('#lv-formLanding1-goods').val('{"offer_leather-china1":{"quantity":1,"sum":"260"}}');
}
console.log($('#lv-formLanding1-goods').val());
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-additionals">
<label class="label">
<input type="checkbox" id="checkbox" class="checkbox-hide" name="checkbox">
<span class="fake-check"></span>
<span class="checkbox-text">Чекбокс1</span>
</label>
<label class="label">
<input type="checkbox" id="checkbox2" class="checkbox-hide" name="checkbox2">
<span class="fake-check"></span>
<span class="checkbox-text">Чекбокс2</span>
</label>
</div>
<input class="lv-input-goods" id="lv-formLanding1-goods" type="hidden" value='{"offer_leather-china1":{"quantity":1,"sum":"260"}}' name="FormLanding[goods]" />