Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Иф с использованием нескольких операторов (https://javascript.ru/forum/project/49715-if-s-ispolzovaniem-neskolkikh-operatorov.html)

usa-1500 26.08.2014 00:50

Иф с использованием нескольких операторов
 
<!DOCTYPE HTML>
<html>
  <head>
  <meta charset=utf-8>
  <title>Моя страница</title>
  </head>
  <body>
    <script>
  var message = (login == 'Вася') ? 'Привет' :
  (login == 'Директор') ? 'Здравствуйте' :
  (login == '') ? 'Нет логина' :
  'Неопределен';
  document.write(message);
    </script>
<form action="index.php">
<input type="text" name="login">
<input type="submit" value='Результат'>
</form>
  </body>
</html>


При вводе в текстовое поле слова "Вася" и нажатии на кнопку, не выдается ответ: "Привет". Что не так в коде? :cray:

Sweet 26.08.2014 02:13

Цитата:

Сообщение от usa-1500
Что не так в коде?

Всё не так. Но в первую очередь - логика. С чего ты решил, что если переменная будет зависеть от переменной, имя которой совпадает с именем атрибута, то метод .write, который пишет в поток документа, в любой (вернее, когда нажимают кнопку отправки формы) момент времени, выведет в задуманное место сообщение? Если ты понимаешь о чём я...:D

usa-1500 26.08.2014 16:31

Может вначале необходимо в коде разместить форму, а ниже код джаваскрипт, чтобы вначале форма получила значение введенное в форму?

Viral 26.08.2014 16:42

usa-1500, тернарный оператор придумали для удобства написания/чтения, когда там столько условий, он абсолютно нечитаем.. используйте лучше switch

едем дальше.. при нажатии на кнопку происходит сабмит формы, т.е. форма отправляется, судя по тому, что метод не указан, гетом
вам надо или перехватывать клик по кнопке или проверять наличие чего-нибудь в гете и уже далее передавать содержимое гет-запроса или значения текстового поля в переменную login, предварительно ее объявив, а потом уже делать с этими данными свои темные дела..


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