Помогите вынести обработчик события в функцию.
Дело в том, что клиентский js я знаю пока ещё плохо (да я и обычный не знаю), но тем не менее хочу сделать код на странице пограмотнее. Так вот есть форма такая
<form action="" method="post"> <input type="text" name="name" size="37" value="Введите ваше имя" onFocus="if (this.value == this.defaultValue) { this.value = ''; }" onblur ="if (this.value == '') { this.value = this.defaultValue; }" /> <textarea cols="30" rows="14" name="question" onFocus="if (this.value == this.defaultValue) { this.value = ''; }" onblur ="if (this.value == '') { this.value = this.defaultValue; }">Введите свой вопрос</textarea> <div class="capcha"> <div class="background_capcha"><img src="capcha/img/randomimg.php" /></div> <div class="refresh_capcha"> <a href="" onclick="this.src=this.src+'?'+Math.round(Math.random())"><img src="/img/refresh_capcha.png" /></a> </div> </div> <input type="text" name="capcha" size="37" value="Введите ваше имя" onFocus="if (this.value == this.defaultValue) { this.value = ''; }" onblur ="if (this.value == '') { this.value = this.defaultValue; }" /> <input type="image" src="/img/quest_button.png" /> </form> Делает он обычную вещь, при желчке на поле он делает его пустым, при шелчке на другое поле, он возвращает надпись "Введите ваш текст", если пользователь ничего не ввёл в форму. Так вот как вынести в отдельные функции этот большой и повторяющийся js код? Ну я пробовал давать имя форме и регистрировал события так: document.myform.name.onFocues = function() {if (this.value == this.defaultValue) { this.value = ''; }} И т.д. Также пробовал выносить в отдельную функцию и ставить её в качестве обработчика, но всё равно перестаёт работать. Чую, что проблемы в том, что я плохо понимаю особенности клиенского js и Обьектной модели страницы. В общем помогите, пожалуйста. |
Да я ещё понаглею, вот в этом коде у меня есть капча:
<div class="capcha"> <div class="background_capcha"><img src="capcha/img/randomimg.php" /></div> <div class="refresh_capcha"> <a href="" onclick="this.src=this.src+'?'+Math.round(Math.random())"><img src="/img/refresh_capcha.png" /></a> </div> Я её хочу обновить при шелчке на картинку, ну т.е. чтобы он грузил файл randomimg.php сразу после того, как щёлку на картинку, но при это страница не перезагружалась, вроде бы этот код должен работать, но что то тоже не работает. |
prowoke,
Рабочий вариант <img onclick="this.src=this.src+'?'+Math.round(Math.random())" src="/img/refresh_capcha.png" /> <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript"> var focus = function() {if (this.value == this.defaultValue) { this.value = ''; }}; var blur = function() {if (this.value == '') { this.value = this.defaultValue; }}; window.onload = function() { document.myform.question.onfocus = focus; document.myform.question.onblur = blur;} </script> </head> <body> <form name="myform" action="" method="post" id="myform"> <textarea cols="30" rows="5" name="question"> Введите свой вопрос </textarea> </form> </body> </html> |
Рабочий вариант
<img onclick="this.src=this.src+'?'+Math.round(Math.random())" src="/img/refresh_capcha.png" /> За первую спасибо огромное, а это не работает чёт. |
Часовой пояс GMT +3, время: 05:06. |