Не выполняеться 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, время: 19:52. |