Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / о модальный окнах и автозавершении в ExtJS 2.2 / 17 сообщений из 17, страница 1 из 1
08.11.2008, 14:41
    #35641718
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
В главном окне при нажатии на ссылку создаю всплывающее окно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var win = new Ext.Window({
        width: 574 ,
        height: 400 ,
        modal:true,
        autoLoad:"/Forms/FindJob.html",
        frame:false,
        closable:false,
        resizable:false,
        animateTarget:"findjobw"
    });
win.show();
Как мне получить доступ к элементу в окне?
document.getElementById, win.finById, win.items возвращают null or not an object.

В частности хотелось бы из текстового инпута в окне сделать комбо-бокс вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var combo = new Ext.form.ComboBox({
        store: store,
        displayField:'keywords',
        typeAhead: true,
        mode: 'local',
        forceSelection: true,
        triggerAction: 'all',
        selectOnFocus:true,
        applyTo: 'KeywordsTextBox'
        });
но пишет, что объект null :(.
При этом сама форма работает. То есть если заполнить поля в форме и запустить поиск результаты выводятся.
...
Рейтинг: 0 / 0
10.11.2008, 13:45
    #35643918
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ну блин, у вас тут смешан обычный html и extjs
если нужно найти элемент с данным id - используйте Ext.get - возврашает элемент

короче в фаербаге надо это пытаться сделать, могу попробовать, если будет ссылка на страничку
...
Рейтинг: 0 / 0
10.11.2008, 13:46
    #35643924
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
скорее всего просто нет элемента с id=KeywordsTextBox
...
Рейтинг: 0 / 0
11.11.2008, 11:27
    #35645981
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Элемент с d="KeywordsTextBox" все-таки есть :). Он находится на странице FindJob.html и загружается прямо во всплывающее окно. Вот если отказываюсь от загрузки и вписываю код на главную страницу, соответсвенно в окно заружая обычный див, то все работает отлично. Но вот только переношу форму в отдельный файл - перестает :(.
...
Рейтинг: 0 / 0
11.11.2008, 13:39
    #35646550
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ну конечно
так как вы форме ставите аутолоад,
а потом скорее всего у вас в коде происходит вот такая вот вещь -
var win = ...
в этот момент посылается асинхронный запрос на загрузку странички в окошко
потом var combo = ... тут у вас ошибка

а только после этого у вас получается ответ от сервера, и в окошко грузится страничка

это типичная ошибка во всём, что относится к ExtJS и похожим библиотекам, постоянно на неё попадаю

вам либо надо 1) отследить факт загрузки вашей FindJob.html и только после этого делать комбобокс
2) либо через setInterval, либо через Task у ExtJs проверять наличие элемента, а потом только делать комбобокс

и ещё, самое главное - javascript однопоточный, поэтому даже если страница в ваше окошко загрузится мгновенно, она всё равно будет там только после того, как у вас не получится создать комбобокс

предлагаю вам разобраться в исходном коде, как работает autoLoad , и вместо него явно использовать Ext.Updater , в нём можно указать ивент на success
...
Рейтинг: 0 / 0
11.11.2008, 14:35
    #35646783
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

А как отследить загрузку страницы? Это можно привязать к какому-то событию? Например:
Код: plaintext
win.on('beforerender', createCombo());
Ковыряться в исходниках - уж очень безрадостная перспектива :). С JavaScript столкнулся впервые и для меня это темный лес :).
...
Рейтинг: 0 / 0
11.11.2008, 15:52
    #35647064
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
идея тут правильная, но без разбора исходников с этой библиотекой - никуда

у вашего окошка есть такая вот функция,
Код: plaintext
1.
2.
3.
4.
5.
// private
    doAutoLoad : function(){
        this.body.load(
            typeof this.autoLoad == 'object' ?
                this.autoLoad : {url: this.autoLoad});
}

поэтому вам нужно вместо

Код: plaintext
1.
autoLoad:"/Forms/FindJob.html",
вставить
Код: plaintext
1.
autoLoad:{url:"/Forms/FindJob.html",callback:function(){alert('page loaded, insert your combobox here')}},

пробуйте, разбирайтесь
внутри анонимной функции делаете комбобокс и всё прочее

и читайте исходники, иначе с экт жс вы никуда не уедите
...
Рейтинг: 0 / 0
11.11.2008, 16:57
    #35647286
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Спасибо, что не поленились полезть в исходники :), но все равно не работает :(. Теперь вообще окно не появляется :(. Главная страница затеняется, но само окно не появляется.

Ладно, наверное брошу это гиблое дело, впишу код формы на главной странице и не буду мучать ни себя, ни других. Просто хотелось как лучше :).

ZeusTheTrueGod, ,
еще раз спасибо :).
...
Рейтинг: 0 / 0
11.11.2008, 17:28
    #35647379
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
дали бы исходный текст, или прям ссылку на сайт в инете, я думаю, всё бы получилось


а дело это не гиблое, просто надо прочитать и сделать много примеров (те же самые examples)

вот смотрите, как это можно сделать

var win = new Ext.Window({
width:574,
height:400,
modal:true,
frame:false,
closable:false,
resizable:false,
animateTarget:"findjobw"
});
win.show();
win.body.load({url:'/Forms/FindJob.html',callback:function(){//insert combobox here}});

и главное - включите фаербаг и смотрите, что же у вас происходит
...
Рейтинг: 0 / 0
11.11.2008, 18:37
    #35647596
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Ок, если Вам не лень поковыряться :), завтра скину исходник, сегодня уже ухожу домой. Что именно из исходника Вам надо?
...
Рейтинг: 0 / 0
11.11.2008, 21:28
    #35647841
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
andrei-kom,

Ну вот так всегда. Зевс потратил дофига своего личного времени. В результате - "завтра скину исходник, сегодня уже ухожу домой" . Хе-хе!
...
Рейтинг: 0 / 0
12.11.2008, 11:36
    #35648636
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ShSerge,

Я благодарен ZeusTheTrueGod за помощь и если я кого-то чем-то обидел, то приношу свои извинения. Но, все-таки, если я не мог скинуть исходник сразу вчера, значит для этого были причины, о которых писать на форуме для всеобщего обозрения не считаю нужным.Согласен, "ухожу домой" не лучший вариант, но что-то сочинять времени не было.
...
Рейтинг: 0 / 0
12.11.2008, 15:54
    #35649570
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ShSerge,

я не потратил дофига своего личного времени, потому что эта задачка не является чем то очень сложным - она простая и незамысловатая

вот если бы я не работал раньше с этой библиотечкой, и пытался б разобраться что не так - вот это было бы проблема, на которую я б потратил своё время

ну а человек, который здесь пишет - весьма странный- ни фаербага, ни исходников, ни скриншотов, не может даже эти две странички на сайт выложить
мне не нужны его исходники - в фаербаге я могу сразу всё подправить так, как мне нужно
...
Рейтинг: 0 / 0
12.11.2008, 17:22
    #35649955
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Извините. Вот исходники: http://ifolder.ru/9040181
Сайт пока нигде не размещен. Он еще в начальной стадии разработки.
...
Рейтинг: 0 / 0
13.11.2008, 12:30
    #35651349
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Спасибо, все-таки Ваш способ работает. А именно:
Код: plaintext
autoLoad:{url:"/Forms/FindJob.html",callback:function(){alert('page loaded, insert your combobox here')}},
Блин, из-за банальной опечатки всем голову морочил :(. Совсем не внимательный стал :(.
Извините и еще раз спасибо.
...
Рейтинг: 0 / 0
13.11.2008, 12:42
    #35651383
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Hello World Window Example</title>
    <link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css" />

    <!-- GC -->
 	<!-- LIBS -->
 	<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
 	<!-- ENDLIBS -->

    <script type="text/javascript" src="../../ext-all-debug.js"></script>

<script>

Ext.onReady(function(){
        Ext.get('show-btn').on('click',function(){
        var win = new Ext.Window({
        width: 574 ,
        height: 400 ,
        modal:true,
        frame:false,
        closable:false,
        resizable:false,
        animateTarget:"show-btn"
        });
        win.show();
        win.body.load({url:'1.html',callback:function(el,success,response)
	{alert ('test');
             var combo = new Ext.form.ComboBox({
               //store: store,
               displayField:'keywords',
               typeAhead: true,
               mode: 'local',
               forceSelection: true,
               triggerAction: 'all',
               selectOnFocus:true,
               applyTo: 'forCombo'
             });//combo
            }
        });
        });
});
</script>
</head>
<body>
<h1>Hello World Window</h1>
<input type="button" id="show-btn" value="Hello World" /><br /><br />
</body>
</html>
вот вам пример, ну а страничку 1.html сделайте сами
...
Рейтинг: 0 / 0
13.11.2008, 14:54
    #35651917
andrei-kom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
о модальный окнах и автозавершении в ExtJS 2.2
ZeusTheTrueGod,

Еще раз спасибо.
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / о модальный окнах и автозавершении в ExtJS 2.2 / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]