Javascript.RU

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

Не работает getElementById()
Что здесь не работает, не могу понять!

<html>
<head>
<meta charset="UTF-8">
<title>Форма</title>
<script>
var email=document.getElementById("email").value;
function blur() {
if (email=="") {
email="Email";
}
}
function focus() {
if(email=="Email") {
email="";
}
}
document.getElementById("email").onblur=blur();
document.getElementById("email").onfocus=focus();
</script>
</head>
<body>
<form>
<input type="text" value="Email" id="email">
<input type="text" value="Имя" id="name">
</form>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 26.03.2016, 16:23
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

https://learn.javascript.ru/onload-ondomcontentloaded
Ответить с цитированием
  #3 (permalink)  
Старый 26.03.2016, 17:24
Кандидат Javascript-наук
Отправить личное сообщение для Strongman Посмотреть профиль Найти все сообщения от Strongman
 
Регистрация: 22.03.2016
Сообщений: 132

<input type="text" value="Email" id="email">
<input type="text" value="Имя" id="name">
- вот это нужно написать до скрипта.
email=""; - по-моему так писать нельзя, нужно писать:
email.value="";
Ответить с цитированием
  #4 (permalink)  
Старый 30.03.2016, 15:12
Новичок на форуме
Отправить личное сообщение для Boortcore Посмотреть профиль Найти все сообщения от Boortcore
 
Регистрация: 30.03.2016
Сообщений: 5

В коде вы на событие навесили не функцию, а её вызов. Пишите название функции без скобок.
И скрипт нужно разместить в конце страницы, чтобы всё работало. Или завернуть весь этот код в window.onload = function(){ ... }, если Вам принципиально размещение скрипта в head страницы.
Ответить с цитированием
  #5 (permalink)  
Старый 30.03.2016, 15:46
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Boortcore Посмотреть сообщение
В коде вы на событие навесили не функцию, а её вызов. Пишите название функции без скобок.
И скрипт нужно разместить в конце страницы, чтобы всё работало. Или завернуть весь этот код в window.onload = function(){ ... }, если Вам принципиально размещение скрипта в head страницы.
AgRuN,
Даже если выполнить все эти условия, код толком работать не будет.
1. Переменная email получает значение из input email один-единственный раз - при ее объявлении в начале кода.
Если вы хотите, чтобы она обновлялась, надо вставлять ее внутрь функций.
2. Функция сработала, переменная email поменяла значение, и что?
В инпутах что было, то и останется.

PS: и вообще, смысл этих манипуляций не очень понятен

Последний раз редактировалось Dilettante_Pro, 30.03.2016 в 15:53.
Ответить с цитированием
  #6 (permalink)  
Старый 31.03.2016, 20:10
Новичок на форуме
Отправить личное сообщение для Boortcore Посмотреть профиль Найти все сообщения от Boortcore
 
Регистрация: 30.03.2016
Сообщений: 5

Ну да. Я просто не заметил, что в переменную записывается значение свойства value импута email, хотя нужно было бы добавить в него сам объект импута, а в функциях blur и focus проводить манипуляции уже с его свойством value.
<html>
<head>
    <meta charset="UTF-8">
    <title>Форма</title>
    <script>
        window.onload = function() {
            var email=document.getElementById("email");
            function blur() {
                if (email.value=="") {
                    email.value="Email";
                }
            }
            function focus() {
                if(email.value=="Email") {
                    email.value="";
                }
            }
            document.getElementById("email").onblur=blur;
            document.getElementById("email").onfocus=focus;
        }
    </script>
</head>
<body>
<form>
    <input type="text" value="Email" id="email">
    <input type="text" value="Имя" id="name">
    <input type="button" value="go" onclick="alert(email.value)">
</form>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
ajax запросы, работает на одних компах и не работает на других vtornik23 AJAX и COMET 2 22.03.2010 18:22