Задать вопрос
razrab228
@razrab228
зачем тебе знать это?

Как сделать кнопку с текстом «без текста»?

В прошлом вопросе я спрашивал, как писать текст в input по нажатию кнопки, и сегодня у меня возникла снова проблема.
Есть код.
<form method="GET" action="type_opl">

	       	<div style="font-size: 20px;">Кол-во чего-то...</div><br>
	      <input type="text" id="textInput" name="kolvo"><br><br>
					<div>
						<button type="button">1</button>
					  <button type="button">2</button>
				    <button type="button">3</button>
					</div>
					<div>
						<button type="button">4</button>
				    <button type="button">5</button>
				    <button type="button">6</button>
					</div>
					<div>
						<button type="button">7</button>
				    <button type="button">8</button>
				    <button type="button">9</button>
					</div>
					<div>
					<button type="button" style="font-size: 45px;" class="reset">X</button>
			    <button type="button">0</button>
			    <button type="submit" style="font-size: 40px;">✔</button>
					</div>
				</form>

Также есть скрипт.
<script type="text/javascript">
  	document.addEventListener('click', e => {
			if (e.target.matches('button:not(.reset)')) textInput.value += e.target.textContent;
			if (e.target.matches('.reset')) textInput.value = '';
		})
  </script>

По нажатию на все кнопки в input вводятся цифры, но по нажатию кнопки "✔" в input вводиться этот знак, и меня перекидывает на другую старницу, и в url пишется "?kolvo=1✔"(1-образно).
Как можно не вводить в input знак "✔"?
Он там мне не нужен)
  • Вопрос задан
  • 300 просмотров
Подписаться 1 Средний 3 комментария
Решения вопроса 1
razrab228
@razrab228 Автор вопроса
зачем тебе знать это?
*ВОПРОС РЕШЁН*
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Кажется дело в type="sumbit". Sumbit передает значение на сервер.
event.preventDefault();
Ответ написан
Комментировать
@rhjje
Добавить условие в первый if, что при вводе чисел с кнопок не учитывать button submit.
document.addEventListener('click', e => {
  e.preventDefault();
      if (e.target.matches('button:not(.reset)') && !e.target.matches('button[type="submit"]')) {
        textInput.value += e.target.textContent;
      }
      if (e.target.matches('.reset')) textInput.value = '';
    })


А чтобы не перезагружалась страница вначале отменить стандартное поведение e.preventDefault();
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы