Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.09.2010, 22:29
Интересующийся
Отправить личное сообщение для Flirer Посмотреть профиль Найти все сообщения от Flirer
 
Регистрация: 19.12.2009
Сообщений: 11

передача данных из форм с помощью ajax
Здравствуйте. Такая проблема, в скрипте обработчик нажатия клавиш. Обработчик посылает запрос в бд, существует ли строка в поле в таблице бд, и в зависимости от ответа окрашивает поле. Собственно проблема в том что когда вводишь строку, чтобы строка в итоге нашлась нужно дополнительно куда нибудь нажать, тогда предыдущий вариант отсылается серверу, и если набрать "никк" - то отсылается "ник". Не могу понять как с этим бороться - вот код:

<p>Name:</p><input type="text" name="nickname" onkeyup="checkUserName(getName());">

function checkUserName(user) {
	if (window.XMLHttpRequest)
	{
		xmlr=new XMLHttpRequest();
	}
	else
	{
		xmlr=new ActiveXObject("Microsoft.XMLHTTP");
	}
		xmlr.onreadystatechange=function()
	{
		if (xmlr.readyState==4 && xmlr.status==200)
		{
			
			
			dbUserName=xmlr.responseText;
		}
	}
	xmlr.open("GET","\\tools\\userslogin\\checkuser.php?user="+user,true);
	xmlr.send(); 

	if (dbUserName==1) {
		document.formReg.nickname.style.background = '#faa';
	}
	else {
		document.formReg.nickname.style.background = '#afa';
	}
} 


function getName() {
	return document.formReg.nickname.value;
}


функцию getName прикрутил, думал поможет, getName показывает правильный результат, то есть выдаёт точь в точь то что ввожу в поле. а страничка всё равно реагирует с опозданием в одну клавишу.

Последний раз редактировалось Flirer, 14.09.2010 в 09:37.
Ответить с цитированием
  #2 (permalink)  
Старый 14.09.2010, 09:32
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

1. Отформатируй код.
2. Заместо onkeyup попробуй onchange
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 14.09.2010, 09:38
Интересующийся
Отправить личное сообщение для Flirer Посмотреть профиль Найти все сообщения от Flirer
 
Регистрация: 19.12.2009
Сообщений: 11

спасибо, попробую - код отформатировать - имеется ввиду подсветить как я сейчас сделал или что-то ещё?
Ответить с цитированием
  #4 (permalink)  
Старый 14.09.2010, 09:47
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

ага

и убери функцию getName

а input поменяй на

<p>Name:</p><input type="text" name="nickname" onchange="checkUserName(this.value);">
__________________
.

Последний раз редактировалось Skipp, 14.09.2010 в 09:49.
Ответить с цитированием
  #5 (permalink)  
Старый 14.09.2010, 19:23
Интересующийся
Отправить личное сообщение для Flirer Посмотреть профиль Найти все сообщения от Flirer
 
Регистрация: 19.12.2009
Сообщений: 11

на onchange реагирует только когда поле меняю, то-есть вбиваю текст потом таб нажимаю и только тогда цвет поля меняется, и то бог знает что посылает, потому что всегда возвращается в базе данных имени нет и окрашивает зелёным.
Ответить с цитированием
  #6 (permalink)  
Старый 18.09.2010, 05:27
Интересующийся
Отправить личное сообщение для Юрий Никольский Посмотреть профиль Найти все сообщения от Юрий Никольский
 
Регистрация: 07.09.2010
Сообщений: 20

Я сделал по таймеру сравнение поля с сохраненным значением.
Если отличаются, то выполнить действие и сохранить значение.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как поменять цвет элементов div с помощью ajax? uspehovna AJAX и COMET 12 20.08.2010 17:21
Проверка наличия логина в БД при регистрации, с помощью ajax storng Общие вопросы Javascript 4 09.04.2010 20:24
формирую форму из данных полученных AJAx belbek AJAX и COMET 5 26.06.2009 15:01
Синхронный запрос данных по AJAX Shasoft AJAX и COMET 2 03.03.2009 14:07
передача данных между формами Yurii Общие вопросы Javascript 2 30.04.2008 20:52