Обновление: Я попробовал предложение от @newmount, однако, если я позвоню fireEvent('blur')
, тогда фокус триггера не будет срабатывать при любом действии клавиатуры. (Он возобновляет когда есть мыши)extjs triggerfield не срабатывает размытие
Чтобы быть честным triggerfield не срабатывает blur в той или иной ситуации.
Изнутри фокусного события, если у меня есть ссылка на другое поле и сделайте field.focus()
размытие текущего поля не срабатывает. Что еще хуже, он срабатывает позже, если я нажму где-нибудь еще.
Ниже кода и шаги для воспроизведения:
Ext.onReady(function() {
Ext.define('Ext.ux.CustomTrigger', {
extend: 'Ext.form.field.Trigger',
alias: 'widget.customtrigger',
labelStyle: 'white-space: nowrap',
initComponent : function() {
this.on("focus", function() {
console.log("Trigger focused");
//the problem point.
//I do some processing here and then
//in some case I do the following:
Ext.getCmp('some_field').focus();
//when this is called the BLUR of this trigger field isn't fired.
});
this.on("blur", function() {
console.log("Trigger blurred");
});
this.callParent();
}
});
//end of onReady
});
Вот живой скрипкой: http://jsfiddle.net/sq37s/
Репродуцировать:
- Нажмите в первое поле имя
- вкладки Hit , он прыгнет в спусковой крючок, а затем прыгнет в середина init.
- консоль в этот момент будет не показать Trigger размыты
- Теперь щелкните в любом месте панели, и вы увидите Trigger размыты.
Такое поведение вызывает некоторые очень неожиданные проблемы в нашем приложении, это настолько банально, что мы основываемся на предположениях о том, что что-то подобное будет работать.
Я хотел бы:
- Любые предложения, чтобы обойти это, возможно, чисто Javascript
- Любая надежда на получение extjsguys, чтобы исправить это?
Я попытался это, смешную вещь, происходит сейчас после того, как «fireEvent» («размытие») «tabing» (или Shift tabbing) обратно в триггер не срабатывает в фокусе! – Kabeer
Привет, спасибо. Я посмотрел на ваш пример, однако аналогичная проблема сохраняется. Когда я ввожу из первого поля, каретка переходит из триггера в 'some_field', однако потерянный фокус _customtrigger не печатается на консоли. Если бы это было какое-то другое поле, скажем текстовое поле, фокус ** и ** размываются события поля. – Kabeer
ну, обновил скрипку, чтобы запустить событие с потерей фокуса. – newmount