Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.04.2013, 01:01
Новичок на форуме
Отправить личное сообщение для mr.bl Посмотреть профиль Найти все сообщения от mr.bl
 
Регистрация: 16.04.2013
Сообщений: 4

Событие onchange не вызывает функцию
Есть reg.js:
function regv(polename,polename2) { //проверка сервером любого поля
	var value = document.getElementById(polename).value;
	if(polename2) value2=document.getElementById(polename2).value;
	else polename2=polename;
	var xmlhttp = getXmlHttp();
	xmlhttp.open('POST', '../regv.php', true);
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	if(polename2 != polename) xmlhttp.send(encodeURIComponent(polename) + "o=" + encodeURIComponent(value) + "&" +encodeURIComponent(polename2) + "=" + encodeURIComponent(value2));
	else xmlhttp.send(encodeURIComponent(polename) + "=" + encodeURIComponent(value));
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			if(xmlhttp.status == 200) {
				if(xmlhttp.responseText != 0) {
					document.getElementById(polename2 + "_error").innerHTML = xmlhttp.responseText;
				} else {
					document.getElementById(polename2 + "_error").innerHTML = " ";
				}
			}
		}
	};
};

function pasve() { //локальная проверка совпадения пароля
	var pas1 = document.getElementById('pas').value;
	var pas2 = document.getElementById('pasv').value;
	if ( pas1 == pas2 ) {
		document.getElementById("pasv_error").innerHTML = " ";
	} else {
		document.getElementById("pasv_error").innerHTML = "Пароли не совпадают";
	} 
};


На страничке стоит два input'a:
<input type="password" id="pas" name="pas" size="22" required onchange="regv('pas');"><br>
<div id="pas_error" class="error_reg"> </div>
<input type="password" id="pasv" name="pasv" size="22" required onchange="regv('pas','pasv');">
<div id="pasv_error" class="error_reg"> </div>

Если onchange="regv('pas','pasv');", то все работает. А если onchange="pasve();", то функция не вызывается.

В чем может быть проблема?
p.s. <a href="#" onclick="pasve();">a</a> работает.

Последний раз редактировалось mr.bl, 16.04.2013 в 02:09. Причина: добавлена пропущенная строчка
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2013, 12:05
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Ищите ошибку в функции regv() (да-да, именно в ней). Для начала закомментарьте ее полностью и посмотрите будет ли вызываться pasve(), если да, то потом по кусочкам разкомментаривайте первую функцию, и увидите когда появляется проблема.
Ответить с цитированием
  #3 (permalink)  
Старый 16.04.2013, 12:31
Новичок на форуме
Отправить личное сообщение для mr.bl Посмотреть профиль Найти все сообщения от mr.bl
 
Регистрация: 16.04.2013
Сообщений: 4

rgl, я пробовал закомментировать regv, не помогло.
С проблемой я разобрался, но причины так и не понял.
переписал строчку function pasve() {, вроде бы все буква в букву, но теперь работает...
function pasve() {
	var pas1 = document.getElementById('pas').value;
	var pas2 = document.getElementById('pasv').value;
	if ( pas1 == pas2 ) {
		document.getElementById("pasv_error").innerHTML = " ";
	} else {
		 document.getElementById("pasv_error").innerHTML = "Пароли не совпадают";
	}
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повесить функцию на событие при помощи javascript фонарик Общие вопросы Javascript 2 23.02.2013 22:50
Отловить событие simple Events/DOM/Window 3 11.05.2011 14:20
background-color и событие onChange chelsea Общие вопросы Javascript 3 15.06.2010 14:34
Как вызвать событие после события определенного в onchange Наталья Events/DOM/Window 2 12.09.2009 13:51
Как отловить событие onchange на LookUp поле? spps Events/DOM/Window 0 09.09.2008 16:02