inputbox
поле
фокус
Технические вопросы
7.x

Поставить поле в фокус

Здравствуйте! Подскажите как принудительно поставить поле в фокус?

У меня по действию в разделе открывается inputBox в котором одно текстовое поле. Как его сразу поставить в фокус?

Нравится

9 комментариев

как-то так
[javascript]
var columnControl = addConditionView.items.getAt(0).getEl();
if (!columnControl.getValue()) {
columnControl.focus();
}
[/javascript]

Не совсем понял как это использовать. inputBox делаю следующим образом:

[javascript]
var config = {
BarCode: {
dataValueType: Terrasoft.DataValueType.TEXT,
caption: 'Штрихкод'
}
};
Terrasoft.utils.inputBox('Отсканируйте ', callback, ['ok', 'cancel'], this, config,
{
defaultButton: 0
}
);
[/javascript]

В Terrasoft.MessageBox.Items лежит только две кнопки "Ок" и "Отмена". Моего текстового поля там нет.

В Terrasoft.MessageBox.controlConfig есть мой BarCode но как его поставить в фокус на открытии inputBox?

Попробуйте в методе Init() напишите следующее

var tb = document.getElementById('textBoxId');
tb.focus()

Ну через DOM объект я сделал просто вот так:
[javascript]
$( document ).ready(function() {
$('.barcode input').focus();
$('.barcode input').keypress(function (event) {
if (event.which == '13') {
event.preventDefault();
$('span[data-item-marker=ОК]').click();
}
});
});
[/javascript]

Но решение на мой взгляд не "кошерное". Я думал может можно как-то с помощью дополнительных параметров поля это реализовать.

А в Terrasoft.MessageBox.init не заходит.

Здраствуйте. Зачем такие усложенения. Человеку нужно чтоб в нужном поле после загрузки страницы в нужном поле установился фокус. Та и в вашем методе нужно к тому же подключать внешнюю библиотеку JQuery. Для такой простенькой задачки подключать внешнюю библиотеку, когда это можно сделать "чистым" Javascript, как по мне нецелесообразно

Не после загрузки страницы а после отображения inputBox и в единственном поле. Библиотека JQuery у меня уже была подключена для других целей. Можно сделать и на чистом Javascript тут как-раз разницы никакой.

А в функции Init() не подойдет проставить фокус?

В Terrasoft.MessageBox.init ? Я переопределяю этот метод и туда не заходит процесс выполнения скрипта.

Извините, сразу не понял. Я думал, Вам просто нужно на карточку.

Показать все комментарии