есть страница, в которую грузятся данные с другой страницы посредством AJAX, так же на этой странице есть Javascript, который отправляет данные из инпута методом POST обработчику PHP, но при попытке получить информацию из инпута, который находится на подгружаемой странице, ничего не работает, даже не пытается.
Вот коды этих страниц:
Главная страница:
<html
<head>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/nav.js"></script>
<script type="text/javascript">
$(function(){
AjaxContent.init({containerDiv:"#ajax-wrap",contentDiv:"#text"}).ajaxify_links("#menu a"); <!-- СКРИПТ, ПОДГРУЖАЮЩИЙ СТРАНИЦЫ БЕЗ ПЕРЕЗАГРУЗКИ --!>
});
</script>
<script language="javascript">
$(document).ready(function()
{
$("#add").blur(function()
{
$.post("action.php",{ add:$(this).val() } ,function(data) <!-- СКРИПТ ОТПРАВЛЯЮЩИЙ ОБРАБОТЧИКУ ИНФОРМАЦИЮ ИЗ INPUT ID="add"
{
alert(data);
});
});
});
</script>
</head>
<body>
<div class="wrap">
<ul id="menu">
<li><a href="other_page.html">Подгружаемая страница</a></li>
<li><a href="other_page2.html">Подгружаемая страница 2</a></li> <!-- меню, при клике на которое подгружается нажатая страница без перезагрузки --!>
</ul>
</div>
<div id="ajax-wrap">
<div id="text">
<!--СЮДА ГРУЗИТСЯ КОНТЕНТ ИЗ ДГРУГОЙ СТРАНИЦЫ (other_page.html) --!>
</div>
</div>
</body>
</html>
код страницы с которой грузиться контент:
<div id="ajax-wrap">
<div id="text">
какой либо текст и тот самый инпут из которого нужно получиться информацию
<input type="text" id="add" value="">
</div>
</div>
---------------------------------------------------------------------------------------------------------------------
так вот если <input type="text" id="add" value=""> находится на главной странице, то все правильно работает, а если <input type="text" id="add" value=""> находится на подгружаемой странице other_page.html то вообще не реагирует.
как это исправить ? кроме огромной благодарности даю 100 баллов за помощь
Примечание:
есть вот как функция, которая работает в таких же условиях:
функция на главной странице:
var req = Create();
function ge(id)
{
return document.getElementById(id);
}
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
function Refresh()
{
if( req.readyState == 4 )
ge('thelist').innerHTML = req.responseText;
}
function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}
function Pusk()
{
var query = 'txt=' + encodeURIComponent( ge( 'goto' ).value);
Request(query);
}
input на подгружаемой странице(таким же образом как и в примере выше):
<input type="text" id="'goto'" value="любое вписываемое значение">
<input type="submit" onClick="Pusk()" >
--------------------------------------------------------------------------------------------------------------
но этот пример работает только при клике на submit, а в предыдущем примере необходимо получить данные при окончании ввода в инпут(то есть ввел, кликнул по другой части страницы, и оно отправило данные обработчику)
возможен вариант совместить ети функции. Еще я заметил что в этой функции присутствует такая штука:
function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}
возможно благодаря этому оно работает !?!?
Примечание:
да, спасибо, onblur отлично работает
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.