@Andre548

Как передать значение 0 из чекбокса?

Всем привет, если чекбокс не выбран, то на сервер ничего не отправляет, а мне нужно что бы отправлял 0. В чем может быть проблема?
<div class="form-group row">
                            <label class="col-md-4 control-label">На продаже</label>
                            <div class="col-md-8">
                                <div class="col-md-8">
                                    <input type="checkbox" id="e_sale" name="e_sale" value="0">
                                </div>
                            </div>
                        </div>

$('#my_form').on('submit', function (e) {
            e.preventDefault();
            var $that = $(this);
            var formData = new FormData($that.get(0));
            $.ajax({
                url: '{{URL::to('/')}}/editinternalnumber',
                contentType: false,
                processData: false, 
                method: 'post',
                data: formData,

                success: function (res) {
                    if (res != undefined && res.success == 'true') {
                        toastr.success('Данные успешно сохранены!');
                        setTimeout(function () {
                            location.reload();
                        }, 1000);
                    } else {
                        toastr.error(res.error, "Ошибка");
                    }
                }
            });
        });
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 4
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
var d = $that.get(0)
где то тут меняйте значение на 0
Ответ написан
Комментировать
@grek_cheburek
Программист самоучка
Есть два варианта.
1. Проверять на стороне клиента.
2. Проверять на стороне сервера.
Но во-всяком случае, если сделана проверка на стороне клиента, то на стороне сервера тоже обязательно нужно делать проверку.

Если он приходит на сервер пустым, то это уже может обозначать ноль, так как у вас в value стоит ноль.
Если вы его отметите, то только тогда будет ноль.
На сервер передается value, когда нажат.
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
<input type="hidden" name="e_sale" value="0">
<input type="checkbox" id="e_sale" name="e_sale" value="1">


Если чекбокс выбран, будет передано 1.
Если нет, то из чекбокса ничего не будет передано, но так как есть инпут с таким же именем, то будет передано его значение, то есть 0.
последовательность инпутов в разметке важна.
Ответ написан
Lynn
@Lynn
nginx, js, css
Если уж всё равно тут JS, то ничего не мешает просто добавить нолик перед отправкой.
$('#my_form').on('submit', function (e) {
    e.preventDefault();
    var formData = new FormData(this);
    if (!formData.has('e_sale')) {
        formData.set('e_sale', '0');
    }
    ...
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы