Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2011, 07:49
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Помогите вынести обработчик события в функцию.
Дело в том, что клиентский 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 и Обьектной модели страницы. В общем помогите, пожалуйста.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2011, 07:54
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Да я ещё понаглею, вот в этом коде у меня есть капча:
<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 сразу после того, как щёлку на картинку, но при это страница не перезагружалась, вроде бы этот код должен работать, но что то тоже не работает.
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2011, 20:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 32,439

prowoke,
<a href="" onclick="this.src=this.src+'?'+Math.round(Math.ran dom())"><img src="/img/refresh_capcha.png" /></a>

Рабочий вариант
<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>
Ответить с цитированием
  #4 (permalink)  
Старый 25.03.2011, 00:55
Аспирант
Отправить личное сообщение для prowoke Посмотреть профиль Найти все сообщения от prowoke
 
Регистрация: 09.12.2010
Сообщений: 56

Рабочий вариант
<img onclick="this.src=this.src+'?'+Math.round(Math.random())"  src="/img/refresh_capcha.png" />


За первую спасибо огромное, а это не работает чёт.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55
Вынести обработчик OnChange petr0007 Общие вопросы Javascript 4 30.04.2010 08:53
обработчик события nikolaich ExtJS 1 15.04.2010 10:13
как узнать имеется ли обработчик события HelpeR Events/DOM/Window 9 17.02.2010 18:20
Обработчик события: как делает jquery? Shasoft jQuery 35 22.04.2009 09:41