Przepraszam, że zawracam głowę, ale piszę właśnie formularz, który działa zasadniczo niezupełnie tak jak bym chciał.
- Po pierwsze ten formularz niczego nie wysyła dalej i tak ma być. Dlatego zdjąłem mu action i method (szukając przyczyny niepowodzeń, o których niżej)
- Po drugie, wciśnięcie
enter
w polu tekstowym powoduje przeładowanie strony . - Po trzecie, choć przypisałem formularzowi jako całości cos takiego:
const form = document.getElementById('queryForm');
form.addEventListener('change', function() {
console.log('Hi!');
});
to o ile radio guziki powodują, co trzeba, to już wpisywanie czegokolwiek w pole tekstowe już nie.
I tu pojawia się pytanie. Z 3 wynikałoby, że naciskając tam enter, wywołuję jakąś funkcję. Pytanie, którą konkretnie? - interesuje mnie to z praktycznej przyczyny - chciałbym nadpisać jej zachowanie. Jednak nie wiem ani, czy jest to funkcja formularza ani, czy pola. Nie wiem też jaka - domyślam się, że pewnie submit, ale chciałbym, żeby ktoś to skomentował.
Założenie jest takie, że ten formularz ma NIE MIEĆ guzika submit. Dziwaczne, ale tak chcę. Nie będę miał nic przeciwko sytuacji, kiedy każda zmiana w polu tekstowym wywoła sczytanie danych (do tego jest już działająca funkcja, nie zamieszczam, żeby nie zaciemniać). Nie mam nic przeciwko sytuacji, w której sczytanie nastąpi po kliknięciu w enter w polu tekstowmy, jeżeli nie spowoduje to przeładowania stony. Pytanie tylko - co przy kliknięciu w ten enter się dzieje - jakbym wiedział pewnie bym poradził sobie z nadpisaniem.
<form id = 'queryForm' name = 'input' >
<h2>Sortuj po</h2>
<ul id='radioInputs'>
<li><input id = 'date' name = 'sort' type="radio" value ='date'> dacie wydania</li>
<li><input id = 'author' name = 'sort' type="radio" value ='author'> nazwisku autora</li>
</ul>
<ul id='textInput'>
<li>More<input value ='' name ='textInput' id='pageQueryInput' type="text"> strong</li>
</ul>
<button class="btn btn-secondary d-block mx-auto" type='reset'>Wyczyść</button>
</form>