powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при потере фокуса.
6 сообщений из 6, страница 1 из 1
Проблема при потере фокуса.
    #39152755
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Буду благодарен за совет в реализации интерфейса приложения (MVC 3). Делаю вот что:
У меня большая форма с большими текстовыми полями, текста может не быть совсем, но могут ввести объемное сочинение.
Посему при получении фокуса, я скриптом увеличиваю поле, а при потере возвращаю(onfocus, blur). Кроме того поля по смыслу сгруппированы в нескольких <div> а в шапке есть заголовок в виде группы RadioButton при изменении которого один <div> делается видимым, а остальные нет.
Проблема вот в чем:
Выделяю поле, оно расширяется, ввожу текст, потом мне надо заполнить поле в другой группе, я щелкаю по пункту в RadioButton,
отрабатывает событие blur только что заполненного поля и оно принимает прежний размер. Но с первого раза не меняется значение RadioButton, оно получает фокус, но чтобы отметить выделенный пункт надо щелкнуть снова, тогда значение меняется и отрабатывает нужное событие. Как обойтись без повторного нажатия, что мешает поменять значение RadioButton при первом нажатии?
...
Рейтинг: 0 / 0
Проблема при потере фокуса.
    #39152807
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich,

например, было:

Код: javascript
1.
2.
3.
4.
5.
$('#myForm').on('blur', '[name="MyBigTextField"]', function() {

   // ... тут код, который меняет размер поля

});



сделай примерно так:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$('#myForm').on('blur', '[name="MyBigTextField"]', function() {

   var self = $(this);

   setTimeout(function() {

        // ... тут код, который меняет размер поля

   }, 200);

});



т.е. выполняй изменение размера поля с задержкой, дай отработать другим важным событиям.
...
Рейтинг: 0 / 0
Проблема при потере фокуса.
    #39152868
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Спасибо! С задержкой работает. А по сути происходящего, правильно ли я мыслю, что меняя высоту и ширину поля я генерировал некий новый эвент (измененного @HTML.Text) и именно по этой причине не вся цепочка событий отрабатывала?
...
Рейтинг: 0 / 0
Проблема при потере фокуса.
    #39172255
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

А нет ли универсального способа? Например после вызова в коде например чего то вроде:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var s1 = $("#MyListField1");
s1.empty();
$.getJSON("@Url.Action("ListMetod","MyController")", { par1:$('#f1').val(), par2:$('#f2').val()},
                    function (MyData) {
                          s1.append($('<option/>', {
                            value: " ",
                            text: " "
                        }));
                        $.each(MyData, function (index, itemData) {
                        s1.append($('<option/>', {
                                value: itemData.Value,
                                text: itemData.Text,
                                selected:true
                          }));
                        });
         });

//// Вот тут мне надо понимать что Аякс уже отработал, контрол заполнен и я могу вызвать change чтобы в нем подтянуть данные 
//// по выбранному номеру документа, как если бы его выбрал юзер.
//// запрос может выполниться намного дольше в каком то случае и задержки будет недостаточно

setTimeout(function() {$("#MyListField1").change();}, 200);
...
Рейтинг: 0 / 0
Проблема при потере фокуса.
    #39174168
denis_viktorovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich,

лучше задам вопрос в новом топике, все же это наверное другая тема.
...
Рейтинг: 0 / 0
Проблема при потере фокуса.
    #39174894
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
denis_viktorovich
Код: javascript
1.
Вот тут мне надо понимать что Аякс уже отработал



Понять, что аякс уже сработал можно только повесив обработчик события на complete (или success и error). До того, как произойдёт нечто на ответ аякса, контрол можно перевести в определённое состояние. Также всё-таки необходимо повесить таймер на случай, если ответ долго не будет приходить и отреагировать так, чтобы пользователь не думал, как будто всё зависло.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при потере фокуса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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