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)

Incondition 17.06.2013 10:45

Не запускается пользовательская функция в теге select
 
Объявляю функцию:

<script type='text/javascript'>
function showDay(){
alert('dkfjghdfkjg');
}
</script>

затем я по-разному уже пробовал:

<select class="month" id="month" onFocus="alert('showDay');" onChange="alert('Item with index ' + this.selectedIndex + ' selected.'); alert('utyu');">
<option>Январь</option>
<option selected onClick="alert('showDay');">Февраль</option>
<option>Март</option>
<option>Апрель</option>
</select>

Так работают все алерты.
вот так уже не работает (просто вызов функции не происходит):

1) onChange="showDay();"
2) onChange="alert(showDay());"
3) onChange="alert(showDay);"
4) onFocus="showDay();"
5) onFocus="alert(showDay());"
6) onFocus="alert(showDay);"
7) onClick="showDay();"
8) onClick="alert(showDay());"
9) onClick="alert(showDay);"

Естественно мне нужно запустить именно showDay() но все эти варианты показывают что не запускается все что связано с пользовательской функцией.

Я в javascript новичек, можно сделать через php но всетки так было бы красивее и круче...

Solonik 17.06.2013 11:02

<html>

<head>
<script type='text/javascript'>
function showDay(){
alert('dkfjghdfkjg');
}
</script>
</head>
<body>
<select class="month" id="month" " onChange="showDay()">
<option>Январь</option>
<option>Февраль</option>
<option>Март</option>
<option>Апрель</option>
</select></body>

</html>


Я так понимаю чтобы при изменения option вызывалась функция ? Тогда проще так сделать.

рони 17.06.2013 11:05

Incondition,
:blink:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script type='text/javascript'>
 function showDay(){
 alert('dkfjghdfkjg');
 }
 </script>
</head>

<body>
<select class="month" id="month"  onChange="alert(showDay());showDay();alert('Item with index ' + this.selectedIndex + ' selected.'); alert('utyu');">
 <option>Январь</option>
 <option selected >Февраль</option>
 <option>Март</option>
 <option>Апрель</option>
 </select>
</body>
</html>

Incondition 17.06.2013 13:18

Хух(( простите, ваш код работает, мой нет... вот мой код:

<!DOCTYPE HTML>
<html>
<head>
 <title>Untitled</title>
<meta charset="utf-8">
 <script type='text/javascript'>
function showDay(){
 alert('dkfjghdfkjg');
 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>
</head>
	 
<body>
<form>
	<select class="year" id="year"> 
	<?php 
	for($i=2012; $i>=1900; $i--)
	{
		 echo ("<option>".$i."</option>"); 
	}
	?>
	</select>
	<select class="month" id="month" onChange="showDay();">
	<option>Январь</option>
	<option selected>Февраль</option>
	<option>Март</option>
	<option>Апрель</option>
	<option>Май</option>
	<option>Июнь</option>
	<option>Июль</option>
	<option>Август</option>
	<option>Сентябрь</option>
	<option>Октябрь</option>
	<option>Ноябрь</option>
	<option >Декабрь</option>
	</select>
	<select class="day" id="day">
	 
	<?php 
	for($i=1; $i<=28; $i++)
	{
		 echo ("<option>".$i."</option>"); 
	}
	?>
	</select> 
	 </form>
</body>
</html>


Понимаю, тут много недочетов но помогите сделать чтобы хоть запускалась...

рони 17.06.2013 13:29

Цитата:

Сообщение от Incondition
if (!year%4 && month=='Февраль') {

интересно откуда в эту строку прилетят год и месяц

рони 17.06.2013 13:41

Incondition,
для кругозора 18.05.2006 Javascript SELECT - динамические списки

http://learn.javascript.ru/form-elements#select-option

danik.js 17.06.2013 14:06

Цитата:

Сообщение от Incondition
case: 'Январь'

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

Incondition 17.06.2013 14:22

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

рони 17.06.2013 14:40

Incondition,
month это у вас селект -- элемент он никогда не будет равен февралю в нормальном случае. но у селекта что-то есть что может быть февралём.

Incondition 17.06.2013 15:36

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


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