Jump to content

Убрать 0 из unimSpinner


x11

Recommended Posts

Небольшое неудобство есть у компоненты unimSpinner. Оно заключается в том, что пользователь, чтобы ввести новое значение, если он вводит вручную с клавиатуры, он должен удалить ноль предварительно и только потом может начать ввод.

Так вот, как сделать так, чтобы unimSpinner имел пустое значение. Ноль не нужен.

Как сделать так, чтобы ноль не приходилось удалять? Чтобы нуля не было?

Три варианта.

1. Ноль никогда не показывается. По умолчанию пустота - это ноль.

2. Когда unimSpinner получает фокус ввода и всплывает виртуальная клавиатура, то автоматически убирать ноль из строки ввода.

3. Когда unimSpinner получает фокус ввода и всплывает виртуальная клавиатура, то автоматически выделять текст в строке ввода и тогда можно не удлять ноль, а он автоматически будет удален при начале ввода.

Как реализовать тот или иной вариант?

Я так думаю, что это нужно сделать на стороне браузера.

Link to comment
Share on other sites

И ещё вопрос похожий на третий, чтобы не создавать тему, задам здесь.

Как реализовать что-то вроде SelectAllOnEnter? Т.е. когда unimSpinner получает фокус ввода и всплывает виртуальная клавиатура, то как выделить весь текст в строке ввода? Это нужно для того, чтобы пользователю не приходилось тратить время на удаление того, что уже введено.

Link to comment
Share on other sites

26 minutes ago, x11 said:

Как реализовать что-то вроде SelectAllOnEnter? Т.е. когда unimSpinner получает фокус ввода и всплывает виртуальная клавиатура, то как выделить весь текст в строке ввода? Это нужно для того, чтобы пользователю не приходилось тратить время на удаление того, что уже введено.

Попробуйте такой подход:

procedure TMainmForm.UnimFormCreate(Sender: TObject);
begin
  UnimSpinner1.JSInterface.JSAddListener('focus', 'function(){this.inputElement.dom.select()}');
end;

 

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

4. Проблема с виртуальной клавиатурой.

Проблема в том, что при нажатии на кнопку + или - не меняется фокус ввода.

Представим так.

На форме лежит TUnimDBLookupComboBox и TUnimSpinner. Пользователь что-то вводит в строку UnimDBLookupComboBox`а для поиска и выбирает нужную строку списка, само собой, что для этого используется виртуальна клавиатура, которая при поиске видна, а уже после выбора она скрывается, но компонента UnimDBLookupComboBox всё ещё в фокусе ввода, там мигает курсор, хоть клавиатура смартфона и скрыта.

Теперь пользователь нажимает кнопку + на UnimSpinner. Нажатие срабатывает, но, так как мигающий курсор находится в UnimDBLookupComboBox`е, то сразу после нажатия на + всплывает виртуальная клавиатура смартфона, хотя она не должна всплывать, ведь пользователь уже выбрал что-то в UnimDBLookupComboBox`е.

Т.е. нужно лепить какой-то костыль, чтобы принудительно убирать фокус ввода с UnimDBLookupComboBox, если пользователь нажимает какую-то кнопку на форме. Вернее, не какую-то, а SpeedButton. Т.к. SpeedButton не имеет фокуса ввода.

 

То же самое, если на форму кинуть TUnimEdit и TUnimSpinner. Если что-то вводить в UnimEdit, а потом нажимать кнопки у UnimSpinner, то виртуальная клавиатура не скрывается.

 

Т.е. нужно сделать так, чтобы при нажатии на кнопки UnimSpinner`а, они, кнопки, получали бы фокус ввода.

 

На всякий случай напишу, что UnimEdit.ReadOnly := True  - не выход.

http://forums.unigui.com/index.php?/topic/11189-hide-keyboard-in-mobile-solutions/&do=findComment&comment=59429

 

Link to comment
Share on other sites

2 hours ago, x11 said:

Т.е. нужно лепить какой-то костыль, чтобы принудительно убирать фокус ввода с UnimDBLookupComboBox, если пользователь нажимает какую-то кнопку на форме. Вернее, не какую-то, а SpeedButton. Т.к. SpeedButton не имеет фокуса ввода.

Я попробую проанализировать. 

Link to comment
Share on other sites

4 hours ago, x11 said:

То же самое, если на форму кинуть TUnimEdit и TUnimSpinner. Если что-то вводить в UnimEdit, а потом нажимать кнопки у UnimSpinner, то виртуальная клавиатура не скрывается.

Можете проверить, работает ли такой подход?

function spin(sender, value, direction, eOpts)
{
    Ext.get(Ext.Element.getActiveElement()).blur();
}

 

Link to comment
Share on other sites

  • 1 year later...
On 6/1/2020 at 8:16 PM, x11 said:

Так вот, как сделать так, чтобы unimSpinner имел пустое значение. Ноль не нужен.

Как сделать так, чтобы ноль не приходилось удалять? Чтобы нуля не было?

Три варианта.

1. Ноль никогда не показывается. По умолчанию пустота - это ноль.

Подскажите, а как можно вместо нулевого значения, т.е. вместо 0, выводить свой placeholder, свой текст?

Ну т.е. как добавить свой placeholder я знаю, но он не отображается, т.к. там введено значение 0.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...