Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не выполняеться Head (https://javascript.ru/forum/misc/10104-ne-vypolnyaetsya-head.html)

Ultimatum 19.06.2010 15:14

Не выполняеться Head
 
Здравствуйте,

Начал изучать JS, но многое непонятно.

Обычно, при программировании стараются сделать чистый код, вынося все лишнее в head, но вынося js код в head из body он просто перестает работать. Возвращаешь все назад, то работает гуд.

В чем проблема ?

В том что браузер читает исходник и выполняя его просто не возвращается к head, а как же тогда функции.

Или я чтото недопонимаю.

theo_ 19.06.2010 15:23

я так понимаю, что код перестает вызываться..

нужно его вызвать по какому-либо событию. в твоем случае для body прописать onload=имя_функции, которую нужно вызвать

ну или обработать какое-либо другое событие другого элемента...

Ultimatum 19.06.2010 15:45

Я пример взял от сюда

http://javascript.ru/forum/misc/4845...remennojj.html

Так выполняется
<html>
<head>

</head>
<body>

<form action="">
	<fieldset>
    	<div>
    		<label for="pwd">Пароль: </label>
            <input id="pwd" type="password" />
        </div>

    	<div>
    		<label for="pwd2">Повторите пароль: </label>
            <input id="pwd2" type="password" />
        </div>
        <div>
        	<input id="check" type="button" value="Проверить" />
        </div>
    </fieldset>

</form>

<script type="text/javascript">
	document.getElementById("check").onclick = function() {
		var pwd = document.getElementById("pwd").value;
		var pwd2 = document.getElementById("pwd2").value;
		if(pwd && pwd == pwd2) {
			alert("Пароли совпадают");
		}
	};
</script>

</body>
</html>


А так нет
<html>
<head>

<script type="text/javascript">
	document.getElementById("check").onclick = function() {
		var pwd = document.getElementById("pwd").value;
		var pwd2 = document.getElementById("pwd2").value;
		if(pwd && pwd == pwd2) {
			alert("Пароли совпадают");
		}
	};
</script>

</head>
<body>

<form action="">
	<fieldset>
    	<div>
    		<label for="pwd">Пароль: </label>

            <input id="pwd" type="password" />
        </div>
    	<div>
    		<label for="pwd2">Повторите пароль: </label>
            <input id="pwd2" type="password" />
        </div>
        <div>
        	<input id="check" type="button" value="Проверить" />

        </div>
    </fieldset>
</form>

</body>
</html>

theo_ 19.06.2010 15:58

я не мастер в js, но думаю, что код исполняется
просто, когда он выполняется, элементов dom еще нет.
чтобы он выполнился, нужно оформить код в функцию, и вызвать ее тогда, когда элементы dom уже появятся, например, по событию onload для body

Ultimatum 19.06.2010 17:22

Все разобрался.

<html>
<head>

<script type="text/javascript">
function test(){
	document.getElementById("check").onclick = function() {
	
		var pwd = document.getElementById("pwd").value;
		var pwd2 = document.getElementById("pwd2").value;
		if(pwd && pwd == pwd2) {
			alert("Пароли совпадают");
		}else{
		alert("Не совпадают");
			};
	
	}
	
	}
</script>

</head>
<body>

<form action="">
	<fieldset>
    	<div>
    		<label for="pwd">Пароль: </label>

            <input id="pwd" type="password" />
        </div>
    	<div>
    		<label for="pwd2">Повторите пароль: </label>
            <input id="pwd2" type="password" />
        </div>
        <div>
        	<input id="check" onclick="test(check)" type="button" value="Проверить" />

        </div>
    </fieldset>
</form>

</body>
</html>


Так у меня работает.

Kolyaj 19.06.2010 19:31

Цитата:

Сообщение от Ultimatum
Обычно, при программировании стараются сделать чистый код, вынося все лишнее в head

Да какая разница, где он подключен.


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