Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Не запускается пользовательская функция в теге select (https://javascript.ru/forum/dom-window/39126-ne-zapuskaetsya-polzovatelskaya-funkciya-v-tege-select.html)

рони 17.06.2013 15:42

Цитата:

Сообщение от Incondition
но я не могу понять почему не запускается функция showDay()

вам написали ---
Цитата:

Сообщение от danik.js
Че за конструкция? Имелось ввиду case 'Январь': ? Также сосчитай количество открывающих фигурных скобок и количество закрывающих.

попробую перевести -- добавьте фигурную скобку в конце и исправьте Конструкцию switch и будет вам промежуточное счастье.

Incondition 17.06.2013 19:21

Цитата:

Сообщение от рони (Сообщение 256815)
вам написали ---
попробую перевести -- добавьте фигурную скобку в конце и исправьте Конструкцию switch и будет вам промежуточное счастье.

Какая досада, 10 раз скобки пересчитал, оказывается скобку я потерял при копировании кусков кода из оригинального файла а там все в порядке со скобками... Вот только промежуточное счастье не наступило, функция не запускается... вернее запускается если большую часть кода закоментировать. вот функция из оригинального файла с закоментированой частью, скобки можете тоже пересчитать, может у меня сегодня день несчетный:

<script type='text/javascript'>
  	function showDay()
	{
		alert('test');
		var year=document.getElementById("year").innerHTML;
		var month=document.getElementById("month").innerHTML;
		alert('year');
		/*if (!year%4 && month=='Февраль')
		{
			document.getElementById("day1")[28].innerHTML = "29";
			document.getElementById("day1")[29].innerHTML = "";
			document.getElementById("day1")[30].innerHTML = "";
		} else if (month=='Февраль')
		{
			document.getElementById("day1")[28].innerHTML = "";
			document.getElementById("day1")[29].innerHTML = "";
			document.getElementById("day1")[30].innerHTML = "";
		}
		else 
		{
			switch (month)
			{
			case: 'Январь'
			case: 'Март'
			case: 'Май'
			case: 'Июль'
			case: 'Август'
			case: 'Октябрь'
			case: 'Декабрь'
				document.getElementById("day")[29].innerHTML = "30";
				document.getElementById("day")[30].innerHTML = "31";
				break;
			default:
				document.getElementById("day")[29].innerHTML = "30";
				document.getElementById("day")[30].innerHTML = "";
			}
		}*/
	}
  </script>


Скоро веру в жизнь потеряю((

рони 17.06.2013 19:49

Incondition,
в switch двоеточия править нужно - перенесите их за месяцы -- ферштейн? :victory:

Incondition 17.06.2013 21:04

Наконец то)))) теперь признаюсь что я тормоз((( обычно я свои ошибки нахожу сам))) тем более ошибка то такая позорная)) и я даже не обратил внимания, что мне об этом уже писали((( извините, сбило с толку, что вся функция не запускалась...

заработало)) даже функция выполняет свое предназначение, правда немного коряво но теперь, думаю, разберусь))) там надо по другому реализовать)

Спасибо!!!:victory:

danik.js 17.06.2013 23:32

Цитата:

Сообщение от Incondition
как я могу проверить код если функцию запустить не могу. Запущу и по исправляю. Спасибо всем за замечания по коду функции но удосуждесь объяснить кто понимает: почему не запускается функция? не трогайте код, там я разберусь, помогите функцию запустить.

Может ты и сам уже догадался, но когда в коде имеются синтаксические ошибки, то он не выполняется вовсе. А значит, никакой функции showDay не существует и вызвать ее невозможно.
И вобще, если что-то не работает - открой консоль ошибок в браузере (она имеется во всех браузерах).

Kvark 18.06.2013 12:43

Что бы не считать скобки кстати очень удобная штука нотепад++

Incondition 18.06.2013 12:49

Цитата:

Сообщение от Kvark (Сообщение 256970)
Что бы не считать скобки кстати очень удобная штука нотепад++

я в дримвьювере пишу. Удобно, но скобки попарно, конечно, не ставит... но со скобками не так страшно)) легко заметить))) чтоб проблемы такой не было надо открывающую и закрывающую ставить сразу)))) У меня проблема возникла при копировании части кода))

Incondition 18.06.2013 12:52

Цитата:

Сообщение от danik.js (Сообщение 256882)
Может ты и сам уже догадался, но когда в коде имеются синтаксические ошибки, то он не выполняется вовсе. А значит, никакой функции showDay не существует и вызвать ее невозможно.
И вобще, если что-то не работает - открой консоль ошибок в браузере (она имеется во всех браузерах).

Теперь заметил. Я раньше javascript не использовал а в php, например, функция вызовется и отработает как сможет... По крайней мере таких проблем я не встречал раньше, это и сбило с толку, ошибку не там искал совсем))

danik.js 18.06.2013 16:15

Цитата:

Сообщение от Incondition
в php, например, функция вызовется и отработает как сможет

Неправда. Ошибка в синтаксисе приведет к Fatal Error. Ошибки в синтаксисе выявляются на первом этапе интерпретации кода, и приводят к остановке разбора. До непосредственно исполнения кода дело даже не доходит..

Incondition 26.06.2013 10:26

Цитата:

Сообщение от danik.js (Сообщение 257033)
Неправда. Ошибка в синтаксисе приведет к Fatal Error. Ошибки в синтаксисе выявляются на первом этапе интерпретации кода, и приводят к остановке разбора. До непосредственно исполнения кода дело даже не доходит..


Ну да))) и сразу понятно что и как))) я имел в виду ошибки, которые пропустит интерпретатор (логические получается). В любом случае там я с таким случаем не сталкивался чтоб скрипт работал кроме функции в которой ошибка)) Не привычно) Но я уже освоился, сам пока нахожу что не так)))


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