Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2014, 22:27
Интересующийся
Отправить личное сообщение для torrius Посмотреть профиль Найти все сообщения от torrius
 
Регистрация: 19.11.2014
Сообщений: 15

Странный глюк с кнопкой <button>
<!DOCTYPE HTML>
<html>
	<head>
		<script type="text/javascript">
			var num = 0;
			function count(){
				return ++num;
			}
		</script>
	</head>
	<body>
		<form>
			<button onclick="alert(count())">button</button>
		</form>
	</body>
</html>

При каждом вызове count(), переменная num должна увеличиваться на единицу, но именно в данном примере этого не происходит.
Однако, если тег <button> сменить любым другим тегом, или просто вынести его за пределы формы - все работает!
Как объяснить причину такого поведения?
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2014, 22:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от torrius
Как объяснить причину такого поведения?
Сообщение от torrius
<form>
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2014, 22:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

torrius,
форма при клике отправляется -- страница обновляется
либо остановите всплытие клика
<button onclick="alert(count());return false">

либо отмените отправку формы
<form onsubmit="return false">
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2014, 22:48
Интересующийся
Отправить личное сообщение для torrius Посмотреть профиль Найти все сообщения от torrius
 
Регистрация: 19.11.2014
Сообщений: 15

Буду благодарен, если объясните сакральную роль <form>, и уж заодно: почему работает без нареканий в другом варианте?
<form>
	<input onclick="alert(count())" type="button" value="button" />
</form>
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2014, 22:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от torrius
почему работает без нареканий в другом варианте?
Сообщение от torrius
type="button"
<form>
			<button>button</button>
		</form>
        <script>
           alert(document.querySelector('button').type)
        </script>
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2014, 22:53
Интересующийся
Отправить личное сообщение для torrius Посмотреть профиль Найти все сообщения от torrius
 
Регистрация: 19.11.2014
Сообщений: 15

Спасибо, понял! )))
Не знал, что <button> как и <input type="submit"> так же отправляет форму )))
Нда....
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2014, 22:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

torrius,
http://htmlbook.ru/html/button/type

Цитата:
Значение по умолчанию

submit
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2014, 23:09
Интересующийся
Отправить личное сообщение для torrius Посмотреть профиль Найти все сообщения от torrius
 
Регистрация: 19.11.2014
Сообщений: 15

Еще раз спасибо, за оперативный исчерпывающий ответ и за ссылку на мануал
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глюк с математикой demoniqus Общие вопросы Javascript 5 16.08.2012 17:09
сломался клик средней кнопкой Gvozd Сайт Javascript.ru 8 08.06.2012 17:57
Странный глюк при работе с JQuery Kirill Tsvetkov Events/DOM/Window 1 13.03.2012 21:49