Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проверка поля без клика при переходе на другое поле
 
 автор: ronin   (15.07.2008 в 16:29)   письмо автору
 
 

Здравствуйте!
При вводе в первое поле формы данных, и при переходе в другое поле, чтобы в первом шла проверка введенной инфы, до нажатия на кнопку "отправить!"
Т.е. есть можно реализовать срабатывание поля без нажатие на кнопку, а только по вводу или переходу в другое поле.

   
 
 автор: Dr Lines   (15.07.2008 в 16:44)   письмо автору
 
   для: ronin   (15.07.2008 в 16:29)
 

используй событие onChange="" - срабатывает после потери фокуса, или перемещении фокуса на другой объект.

   
 
 автор: PAT   (15.07.2008 в 16:47)   письмо автору
 
   для: ronin   (15.07.2008 в 16:29)
 

onchange (или onblur) вам помогут

   
 
 автор: ronin   (15.07.2008 в 16:58)   письмо автору
 
   для: PAT   (15.07.2008 в 16:47)
 

Спасибо!
Еще вопрос что исравить в єтом скрипте, чтобы он реагировал на onchange(),а то он реагирует только на кликанье на кнопку.

<script>
var req;

function getName()
{
    url = 'http://localhost/ajax/vasya/getName.php'; 
    if (window.XMLHttpRequest)
    {
        req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (req)
    {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            req.send();
    }

}
function  processReqChange()
{
    ab = window.setTimeout("req.abort();", 5000);
    if (req.readyState == 4)
    {
        clearTimeout(ab);
        // only if "OK"
        if (req.status == 200)
        {
          document.form1.state.value =(req.responseText);         }
        else
        {
            alert(":\n" + req.statusText);
        }
    }
}
</script>
<form name="form1" >
<input type="text" name="state" onchange='getName()'><br>

   
 
 автор: Dr Lines   (15.07.2008 в 19:19)   письмо автору
 
   для: ronin   (15.07.2008 в 16:58)
 

Имейте ввиду, что событие onChange срабатывает только в том случае, если поле с типом "text" было изменено. Если его выбрать (навести фокус), ни чего там не написать, и сменить фокус, то событие onChange не сработает.

   
 
 автор: ronin   (16.07.2008 в 10:26)   письмо автору
 
   для: Dr Lines   (15.07.2008 в 19:19)
 

этот скрипт не срабатывает и пре переходе в другое поле(которое я для экономии не показал) а реагирует только на клик по кнопке.

   
 
 автор: PAT   (16.07.2008 в 18:11)   письмо автору
 
   для: ronin   (16.07.2008 в 10:26)
 

Скрипт срабатывает - и вы можете это проверить, поставив в начало обеих функции простейший alert ('Работаю!')
Видимо, вы просто не дожидаетесь 5-ти секунд (=5000 миллисекунд). Или ответа от PHP-скрипта у вас вовсе нет.

   
 
 автор: ronin   (16.07.2008 в 19:27)   письмо автору
 
   для: PAT   (16.07.2008 в 18:11)
 

да действительно! Глюк! у меня в смысле:) спасибо!

   
 
 автор: ronin   (16.07.2008 в 19:53)   письмо автору
 
   для: ronin   (16.07.2008 в 19:27)
 

Другой вопрос:
Как ответ разместь не в поле, а - рядом, и почему не передаеться $_POST[state]?
Т.е. в файле обработчике передаеться в поле, что нет переменной

<?php
 header
("Content-type: text/html; charset=windows-1251");
 
header("Cache-Control: no-store, no-cache, must-revalidate");
 
header("Cache-Control: post-check=0, pre-check=0"false);
if (isset(
$_POST[state]))
{
echo 
"Есть переменная";
}
else
{
  echo 
"Нет переменной";
        }

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования