jquery $('#id').ready
Я использую вот такую конструкцию:
$('#' + id).submit();
$('#ifrTransp').ready(function () {
$.getJSON("http://thelongesttest.appspot.com/1.html?id=" + id + "&callback=?",
function(data) {
alert(decodeURI( data.id));
});
});
Для передачи данных на сервер через фрейм "ifrTransp'".
function(data) {
alert(decodeURI( data.id));
});
В будущем должно проверять получил ли сервер данные, не было ли ошибок. То есть мне нужно создать этот запрос сразу после передачи данных через ифрейм. Но у меня такое чувство, что этот ready срабатывает раньше чем форма уходит на сервер. Я прав? :blink: |
И еще это, мне ready применять к ифрейму или странице?
|
дело в том, что ready вешает событие на document (текущий)
что это за iframe? Почему бы в нем не прописать ready? |
Что-то в этом духе:
<iframe name="qtroll_ifrTransp" id="qtroll_ifrTransp" width="100%" height="300"></iframe>
<form name="qtroll_question" enctype="application/x-www-form-urlencoded" method="post" action="http://thelongesttest.appspot.com/cpanel/" id='qtroll_questionFrmId' target="qtroll_ifrTransp"> <!-- {qtroll_questionFrm} -->
</form>
отсылаю так:
function qtroll_sbm(id) {
$('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#000');
$('#' + id + ' > #qtroll_sbmBtn').attr('value', 'sending...');
var seed = hex_md5( new Date() );
$('#' + id + ' > #qtroll_querySeed').attr('value', seed);
$('#' + id).submit();
$('#qtroll_ifrTransp').ready(function () {
$.getJSON("http://thelongesttest.appspot.com/cpanel/?id=" + encodeURI(seed) + "&callback=?",
function(data) {
alert(seed + " " + decodeURI(data.seed));
if ( ('["' + seed + '"]') == decodeURI(data.seed) ) {
$('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#060');
$('#' + id + ' > #qtroll_sbmBtn').attr('value', 'ok!');
}
else {
$('#' + id + ' > #qtroll_sbmBtn').attr('style', 'color:#F00');
$('#' + id + ' > #qtroll_sbmBtn').attr('value', 'error!');
}
});
});
}
Это черновой вариант. Идея такова: Запекаю в невидимое поле формы хеш даты. Отправляю форму через ифрейм транспорт на удаленный сервер( не тот откуда скрипт грузится) Всё это дело пакуется в бд. Как только транзакция завершена - посылаю на тот же сервер ГЕТ запрос, который содержит тот же сиид( дату публикации формы) Если сииды совпадают - значит, по идее, всё произошло нормально. Планирую делать хеш не времени а сериализированной формы, так логичнее... Хелп ме! де мне утыкнуть редю :) |
Цитата:
|
Можно. Как это событие называется, что бы я его добавил? Раз $('#qtroll_ifrTransp').ready не то, что нужно..
А что если $('#qtroll_ifrTransp').load ? Или тоже не вариант ? |
Ухты! А .load как раз то, что нужно делает. Странно, что в спеках по jquery не видел его. Видимо, потому-что он стандартный метод.
|
не знаю, как тебе $('#qtroll_ifrTransp').load помог
а по поводу в iframe: переносишь $('#qtroll_ifrTransp').ready в iframe, а для обращения ко внешнему документу используешь top.document в качестве контекста для $ UPD: уже понял о каком load идет речь (в jQuery совпадает название функций для назначения обработчика события load и для загрузки информации через ajax) |
| Часовой пояс GMT +3, время: 12:26. |