Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2020, 15:06   #1
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию Не работает оператор Switch

Задача такая, при нажатии на одну из 3 кнопок должны вывестись надпись
Эй [Имя] Вы выбрали [цвет на русском] цвет и должен поменяться цвет фона.
Код:
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
Цвет фона меняется, но вывод надписи на экран не происходит.Как сократить в операторе Switch код?
Код:

<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тестовая страничка</title>

 </head>
 <body>
<p>Выбрать цвет фона</p>
<FORM>
 <INPUT TYPE="button" VALUE="Голубой"
      onClick="newcolor('lightblue')">
 <INPUT TYPE="button" VALUE="Розовый"
      onClick="newcolor('pink')">
<INPUT TYPE="button" VALUE="Вернуть"
      onClick="newcolor('white')">
</FORM>
  <SCRIPT LANGUAGE="JavaScript">


function newcolor(color){
	var rez = prompt("Пожалуйста введите свое имя...","Имя");
	document.bgColor=color;
	switch(color){
	case color == 'lightblue': color = 'Светло-голубой'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;
	case color == 'pink': color = 'розовый'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;
	case color == 'white': color = 'белый'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;
 }
}

</SCRIPT>
 </body>
</html>
denis_alekss вне форума Ответить с цитированием
Старый 07.12.2020, 15:36   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Код:
switch(color){
    case 'lightblue':
        color = 'Светло-голубой'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;

    case 'pink':
        color = 'розовый'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;

    case 'white':
        color = 'белый'; 
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
	break;
 }
Вместо document.write лучше использовать innerHTML и подобное.
FrosyaZZ вне форума Ответить с цитированием
Старый 07.12.2020, 15:50   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
switch(color){
    case 'lightblue':
        color = 'Светло-голубой'; 
	break;

    case 'pink':
        color = 'розовый'; 
break;

    case 'white':
        color = 'белый'; 
	break;
 }
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 07.12.2020, 15:58   #4
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию

Aleksandr H.,

Переписал так, но цвет фона не меняется почему-то
Код:
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тестовая страничка</title>

 </head>
 <body>

<p>Выбрать цвет фона</p>
<FORM>
 <INPUT TYPE="button" VALUE="Голубой"
      onClick="newcolor('lightblue')">
 <INPUT TYPE="button" VALUE="Розовый"
      onClick="newcolor('pink')">
<INPUT TYPE="button" VALUE="Вернуть"
      onClick="newcolor('white')">
</FORM>


  <SCRIPT LANGUAGE="JavaScript">
function newcolor(color){
	var rez = prompt("Пожалуйста введите свое имя...","Имя");
	
switch(color){
    case 'lightblue':
        color = 'Светло-голубой'; 
	break;

    case 'pink':
        color = 'розовый'; 
break;

    case 'white':
        color = 'белый'; 
	break;
 }
    document.bgColor=color;
	document.write("Эй, " + rez + " Вы выбрали "+color + " цвет");
 }


</SCRIPT>
 </body>
</html>
denis_alekss вне форума Ответить с цитированием
Старый 07.12.2020, 16:06   #5
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Потому что в switch вы уже переприсвоили color.
FrosyaZZ вне форума Ответить с цитированием
Старый 07.12.2020, 16:07   #6
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию

Цитата:
Сообщение от FrosyaZZ Посмотреть сообщение
Потому что в switch вы уже переприсвоили color.
Ну а за цвет фона выступает строка
Код:
document.bgColor=color;
Она почему-то не меняет фон, хотя она находится за циклом switch
denis_alekss вне форума Ответить с цитированием
Старый 07.12.2020, 16:15   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

че ж так сложно-то все?
Код:
<SCRIPT LANGUAGE="JavaScript">
function newcolor(color){
	var rez = prompt("Пожалуйста введите свое имя...","Имя");
	var color1 = '';
switch(color){
    case 'lightblue':
        color1 = 'Светло-голубой'; 
	break;

    case 'pink':
        color1 = 'розовый'; 
break;

    case 'white':
        color1 = 'белый'; 
	break;
 }
    document.bgColor=color;
	document.write("Эй, " + rez + " Вы выбрали "+color1 + " цвет");
 }


</SCRIPT>
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 07.12.2020, 16:18   #8
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от denis_alekss Посмотреть сообщение
Она почему-то не меняет фон, хотя она находится за циклом switch
И она присваивает 'Светло-голубой' вместо 'lightblue' и т.д. Перечитайте еще раз: вы в свитче уже испортили значение переменной.
FrosyaZZ вне форума Ответить с цитированием
Старый 07.12.2020, 16:18   #9
denis_alekss
Пользователь
 
Регистрация: 01.12.2020
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
че ж так сложно-то все?
Код:
<SCRIPT LANGUAGE="JavaScript">
function newcolor(color){
	var rez = prompt("Пожалуйста введите свое имя...","Имя");
	var color1 = '';
switch(color){
    case 'lightblue':
        color1 = 'Светло-голубой'; 
	break;

    case 'pink':
        color1 = 'розовый'; 
break;

    case 'white':
        color1 = 'белый'; 
	break;
 }
    document.bgColor=color;
	document.write("Эй, " + rez + " Вы выбрали "+color1 + " цвет");
 }


</SCRIPT>
Только что попробовал ваш вариант, результат тот же, выводит цвет который я выбрал, но цвет фона не меняется. Вот полный код:

Код:
<!DOCTYPE HTML>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тестовая страничка</title>

 </head>
 <body>

<p>Выбрать цвет фона</p>
<FORM>
 <INPUT TYPE="button" VALUE="Голубой"
      onClick="newcolor('lightblue')">
 <INPUT TYPE="button" VALUE="Розовый"
      onClick="newcolor('pink')">
<INPUT TYPE="button" VALUE="Вернуть"
      onClick="newcolor('white')">
</FORM>



<SCRIPT LANGUAGE="JavaScript">
function newcolor(color){
	var rez = prompt("Пожалуйста введите свое имя...","Имя");
	var color1 = "";
switch(color){
    case 'lightblue':
        color1 = 'Светло-голубой'; 
	break;

    case 'pink':
        color1 = 'розовый'; 
break;

    case 'white':
        color1 = 'белый'; 
	break;
 }
    document.bgColor=color;
	document.write("Эй, " + rez + " Вы выбрали "+color1 + " цвет");
 }


</SCRIPT>


</SCRIPT>
 </body>
</html>
denis_alekss вне форума Ответить с цитированием
Старый 07.12.2020, 16:25   #10
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

я не знаю верна ли ваша команда,
Код:
document.bgColor=color;
ответ был о SWITCH на базе вашего кода
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оператор switch qwenbk Общие вопросы C/C++ 16 11.10.2015 17:05
Оператор switch XeniaZharinova C# (си шарп) 4 07.12.2014 20:19
switch оператор Alex-Kunfuman Общие вопросы C/C++ 28 22.01.2012 04:42
оператор switch aank10 Общие вопросы C/C++ 3 01.06.2011 10:28
Оператор switch. IgorArhangel Помощь студентам 4 16.01.2009 01:53