Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обработка значений из <FORM> (https://javascript.ru/forum/dom-window/80814-obrabotka-znachenijj-iz-form.html)

wrbanker 01.10.2020 13:13

Спасибо. Вот код:

<form id="special-form">
        <input type="number" name="main-number"> 
        <input type="date" name="main-date">
        <ul>
            <li><input type="radio" name="radio-button" value="r-first"></li>
            <li><input type="radio" name="radio-button" value="r-second"></li>
        </ul>
        <ul>
            <li><input type="checkbox" name="chb-first"></li>
            <li><input type="checkbox" name="chb-second"></li>
        </ul>
        <input type="submit" value="Обработать">
</form>
             
    <script>
        const form = document.querySelector('#special-form');
        form.addEventListener('submit', function (event) {
            const tf_1 = this.querySelector('[name="main-number"]').value;
            const tf_2 = this.querySelector('[name="main-date"]').value;
            const tf_3 = this.querySelector('[name="radio-button"]').value;
            const tf_4 = this.querySelector('[name="chb-first"]').value;
            const tf_5 = this.querySelector('[name="chb-second"]').value;     
            alert (tf_1 + '\n' + tf_2 + '\n' + tf_3 + '\n' + tf_4 + '\n' + tf_5);
        });
    </script>


Значения number и date определяются. В radio, независимо от отметки, значение r-first. Оба checkbox, независимо от флажков, всегда on. Подскажите, в чём моя ошибка?

P.S: с checkbox разобрался: присваиваю нужное мне значение переменной через условное ветвление
const tf_5 = (this.querySelector('[name="chb-second"]').checked) ? 1 : 0;

laimas 02.10.2020 12:45

this.querySelector('[name="main-number"]')... в то время когда можно сразу получить this["main-number"], это к чему?

Если у флажка не определено значение, то оно по умолчанию будет равно "on", с этим значением выбранный флажок и будет отправлен на сервер. Не выбранные флажки на сервер не передаются.

Не знаю чего тут делается, но если не отменять значение по умолчанию формы event.preventDefault();, то она будет отправлена естественным образом.

gunthergeller 16.10.2020 14:21

There are 15 unique qualities ​​in complete. In HTML code, everything is contained inside one FORM tag. It is beyond the realm of imagination to expect to pass all the qualities ​​for handling in JS in one activity. Windscribe black friday vpn


Часовой пояс GMT +3, время: 15:16.