Javascript.RU

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

Не работает оператор 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>
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2020, 15:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от denis_alekss
но вывод надписи на экран не происходит.
не используйте document.write -- а выводите текст в какой-то блок.
Ответить с цитированием
  #3 (permalink)  
Старый 07.12.2020, 15:35
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,742

Сообщение от denis_alekss
Как сократить в операторе Switch код?
Его не сокращать, а переписывать надо
https://learn.javascript.ru/switch
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2020, 15:51
Аспирант
Отправить личное сообщение для denis_alekss Посмотреть профиль Найти все сообщения от denis_alekss
 
Регистрация: 01.12.2020
Сообщений: 55

Переписал так, но цвет фона не меняется почему-то
Код:
<!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 в 15:56.
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2020, 15:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от denis_alekss
Переписал
ваша фантазия безгранична, сходите по ссылке, которую вам дали выше и посмотрите, как пишется switch
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2020, 16:38
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,742

Сообщение от denis_alekss
Переписал так, но цвет фона не меняется почему-то
Уберите и никогда не используйте document.write
Он еще что то может вывести во время парсинга страницы. Но это плохо, т.к. может помешать и замедлить парсинг.
А во время работы страницы он полностью переписывает весь документ, что у вас и происходит.
<!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>
<div id="out"></div>


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

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

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


</SCRIPT>
 </body>
</html>

Последний раз редактировалось voraa, 07.12.2020 в 16:46.
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2020, 16:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

denis_alekss,
https://learn.javascript.ru/modifyin...e-soobscheniya
Ответить с цитированием
  #8 (permalink)  
Старый 08.12.2020, 13:54
Аспирант
Отправить личное сообщение для denis_alekss Посмотреть профиль Найти все сообщения от denis_alekss
 
Регистрация: 01.12.2020
Сообщений: 55

Вот так сработало.
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>Тестовая страничка</title>
 
    <SCRIPT type="text/JavaScript">
function newcolor(color){
    var rez = prompt("ПAжалуйста введите свое имя...","Имя");
    var color1 = "";
switch(color){
    case 'lightblue':
        color1 = 'Светло-голубой';
    break;
    case 'pink':
        color1 = 'розовый';
    break;
    case 'white':
        color1 = 'белый';
    break;
}
    document.write("Эй, " + rez + ", Вы выбрали "+color1 + " цвет");
    document.bgColor=color;
}
</SCRIPT>
</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>

</body>
</html>


Я понял свою ошибку, спасибо, то есть нужно было создавать еще одну переменную color1
а я присвоил получается значение переменной color в switch русский текст, а затем пытался присвоить русский текст bgColor
Ответить с цитированием
  #9 (permalink)  
Старый 08.12.2020, 14:04
Аспирант
Отправить личное сообщение для denis_alekss Посмотреть профиль Найти все сообщения от denis_alekss
 
Регистрация: 01.12.2020
Сообщений: 55

voraa, значит все-таки использовать контейнер div или абзац p, в него вставлять идентификатор id и использовать метод getElementById чтобы сослаться и вывести результат..
Ответить с цитированием
  #10 (permalink)  
Старый 08.12.2020, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

denis_alekss,
а не создавая новую страницу, сможешь? уже voraa, пост #6.

Последний раз редактировалось рони, 08.12.2020 в 14:09.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему некорректно работает оператор instanseof? FunnyCat Общие вопросы Javascript 3 29.08.2018 18:05
AJAX в wordpress плагине в switch Gagablik Общие вопросы Javascript 3 18.04.2018 02:35
контент из XMLHttpRequest response с помощью innerHTML не работает m4ybe Events/DOM/Window 9 24.01.2018 14:35
Не пойму как работает оператор ++ в конце выражения alexandr2006 Элементы интерфейса 4 11.04.2017 10:37
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40