Здравствуйте! Подскажите как принудительно поставить поле в фокус?
У меня по действию в разделе открывается inputBox в котором одно текстовое поле. Как его сразу поставить в фокус?
Нравится
как-то так
var columnControl = addConditionView.items.getAt(0).getEl(); if (!columnControl.getValue()) { columnControl.focus(); }
Не совсем понял как это использовать. inputBox делаю следующим образом:
var config = { BarCode: { dataValueType: Terrasoft.DataValueType.TEXT, caption: 'Штрихкод' } }; Terrasoft.utils.inputBox('Отсканируйте ', callback, ['ok', 'cancel'], this, config, { defaultButton: 0 } );
В Terrasoft.MessageBox.Items лежит только две кнопки "Ок" и "Отмена". Моего текстового поля там нет.
В Terrasoft.MessageBox.controlConfig есть мой BarCode но как его поставить в фокус на открытии inputBox?
Попробуйте в методе Init() напишите следующее
var tb = document.getElementById('textBoxId');
tb.focus()
Ну через DOM объект я сделал просто вот так:
$( document ).ready(function() { $('.barcode input').focus(); $('.barcode input').keypress(function (event) { if (event.which == '13') { event.preventDefault(); $('span[data-item-marker=ОК]').click(); } }); });
Но решение на мой взгляд не "кошерное". Я думал может можно как-то с помощью дополнительных параметров поля это реализовать.
А в Terrasoft.MessageBox.init не заходит.
Здраствуйте. Зачем такие усложенения. Человеку нужно чтоб в нужном поле после загрузки страницы в нужном поле установился фокус. Та и в вашем методе нужно к тому же подключать внешнюю библиотеку JQuery. Для такой простенькой задачки подключать внешнюю библиотеку, когда это можно сделать "чистым" Javascript, как по мне нецелесообразно
Не после загрузки страницы а после отображения inputBox и в единственном поле. Библиотека JQuery у меня уже была подключена для других целей. Можно сделать и на чистом Javascript тут как-раз разницы никакой.
А в функции Init() не подойдет проставить фокус?
В Terrasoft.MessageBox.init ? Я переопределяю этот метод и туда не заходит процесс выполнения скрипта.
Извините, сразу не понял. Я думал, Вам просто нужно на карточку.