Не выполняеться Head
Здравствуйте,
Начал изучать JS, но многое непонятно. Обычно, при программировании стараются сделать чистый код, вынося все лишнее в head, но вынося js код в head из body он просто перестает работать. Возвращаешь все назад, то работает гуд. В чем проблема ? В том что браузер читает исходник и выполняя его просто не возвращается к head, а как же тогда функции. Или я чтото недопонимаю. |
я так понимаю, что код перестает вызываться..
нужно его вызвать по какому-либо событию. в твоем случае для body прописать onload=имя_функции, которую нужно вызвать ну или обработать какое-либо другое событие другого элемента... |
Я пример взял от сюда
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>
|
я не мастер в js, но думаю, что код исполняется
просто, когда он выполняется, элементов dom еще нет. чтобы он выполнился, нужно оформить код в функцию, и вызвать ее тогда, когда элементы dom уже появятся, например, по событию onload для body |
Все разобрался.
<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>
Так у меня работает. |
Цитата:
|
| Часовой пояс GMT +3, время: 08:44. |