2013-04-21 3 views
0

Все виджеты формы простираются от dijit.form._FormWidgetMixin, которые прокручивают окно до виджета, когда он получает фокус.Как остановить dojo от прокрутки до формы виджетов в фокусе?

Я лично считаю, что это поведение делает большинство виджетов непригодными для использования. Как я могу остановить его?

+0

Я лично считаю наоборот ... как вы заполняющей в формах, используя только клавиатуру, если страница не прокручивается? – Philippe

+0

Для виджетов, которые используют стандартные элементы формы, они должны вести себя так, как это делает браузер. Один из примеров того, почему мне не нравится эта функция - у меня есть 'dijit/InlineEditBox', используя в качестве редактора' ditit/form/Textarea'. При нажатии на текст создается текстовое поле, а также кнопки сохранения и отмены. нажатие на любую кнопку приводит к тому, что страница прокручивается до кнопки. Я должен щелкнуть второй раз, чтобы на самом деле вызвать кнопку –

+0

, используя клавиатуру, все еще отлично подходит для меня. Он прокручивает элемент. Я бы предпочел включить его по мере необходимости (если необходимо), а не иметь много случайной прокрутки при нажатии на вещи. –

ответ

2

Dojo позволяет расширить базовые компоненты с помощью dojo/_base/lang::extend. Просто убедитесь, что требовать этого модуля перед любым требуют вызовов, нагрузки dijit/form/_FormWidgetMixin

// Dojo 1.7+ (AMD) 
define([ 
    "dojo/_base/lang", 
    "dijit/form/_FormWidgetMixin" 
], function(lang, _FormWidget){ 
    lang.extend(_FormWidget, { 
     scrollOnFocus:false 
    }); 
}); 

Здесь же для предварительного AMD додзё:

// Dojo < 1.7 
dojo.require("dijit.form._FormWidget"); 
dojo.extend(dijit.form._FormWidget, { 
    scrollOnFocus:false 
});