powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выполнение метода по нажатию Enter в текстовом поле. Как?
9 сообщений из 9, страница 1 из 1
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36710613
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Господа, не подскажите ли код, который обработает нажатие клавиши Enter:

1. Ввожу символы в текстовое поле <text/>
2. Нажимаю Enter
3. Должен выполнится метод ClientMethod searchDoc() [ Language = javascript ]

В данный момент метод searchDoc() у меня отрабатывает при нажатии на кнопку.
Но кажется пользователю будет удобнее жать Enter в конце ввода.

Что происходит в системе: поиск документа по его номеру.
Требования к интерфейсу: быстрота ввода.



-----------------------------------------------
А мы тут плюшками балуемся...

Аленочка тм
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36710645
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на веб-формах обычно обрабатывают по нажатию Ctrl+Enter
onKeyDown, OnKeyPress вам помогут
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36710658
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аленочка,

Код: plaintext
<text label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) zenPage.searchDoc();"/>
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36719064
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitАленочка,

Код: plaintext
<text label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) zenPage.searchDoc();"/>


да, метод выполняется
но значение текстового поля становится раным (пусто), например если после нажатия на Enter вывести алертом:

Код: plaintext
1.
onkeypress="if (zenEvent.keyCode==zenENTER) zenPage.searchDoc(); alert(zenPage.getComponentById('text').value);"

а мне нужно не просто выполнить метод, но и взять введенное в поле значение
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36719147
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<text label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) alert(zenThis.getValue());"/>
или
<text id="txt" label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) alert(zen('txt').getValue());"/>
или
<text id="txt" label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) alert(zenGetProp('txt','value'));"/>
или
<text id="txt" label="Номер документа:" onkeypress="if (zenEvent.keyCode==zenENTER) alert(zen('txt').getProperty('value'));"/>
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36722538
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

метод почему-то отрабатывает только когда считываю содержимое поля в переменную или вывожу алертом

Код: plaintext
<text id="txt" onkeypress="if (zenEvent.keyCode==zenENTER) { var txt = zen('txt').getProperty('value'); zenPage.searchDoc(); }"/>

в таком случае метод не отрабатывает

Код: plaintext
<text id="txt" onkeypress="if (zenEvent.keyCode==zenENTER) { zenPage.searchDoc(); }"/>


содержимое метода примерно следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
ClientMethod searchDoc() [ Language = javascript ]
{
	var txt = zenPage.getComponentById('txt').value;
             if (txt!="") {
             ... делаем что-то ...
             }
}

это очень странно
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36722655
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего странного:
Код: plaintext
1.
2.
3.
4.
5.
6.
ClientMethod searchDoc() [ Language = javascript ]
{
	var txt = zenPage.getComponentById('txt').getValue(); // используйте для чтения свойств соответствующие методы. Примеры см. выше.
             if (txt!="") {
             ... делаем что-то ...
             }
}

Zen Properties on Client and Server :
Код: plaintext
1.
2.
3.
In client side methods, you cannot access any property values directly.
You must use the get and set methods provided in the component classes.
For single-valued properties, use the getProperty and setProperty methods.
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36724798
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

спасибо, учту на будущее -буду использовать то что задокументировано
однако данный код был вполне рабочий - в рамках метода своё назначение выполнял
я бы поняла, если бы код был полностью нерабочий! - но он работает (хотя как показала практика нестабильно)

Код: plaintext
var txt = zenPage.getComponentById('txt').value;
...
Рейтинг: 0 / 0
Выполнение метода по нажатию Enter в текстовом поле. Как?
    #36724814
Фотография Аленочка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

да вы правы : заменила .value на .getProperty('value')

этот код стал выполняться, большое спасибо за помощь!!

Код: plaintext
<text id="txt" onkeypress="if (zenEvent.keyCode==zenENTER) { zenPage.searchDoc(); }"/>
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Выполнение метода по нажатию Enter в текстовом поле. Как?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]