Формы Orbeon - триггер проверки при нажатии клавиши

Мы используем формы Orbeon версии 2017.1.1 и пытаемся инициировать проверку текущего поля в форме при каждом событии JS keyup. Мы пытались использовать ev:event="xxforms-value-changed", но он срабатывает только после того, как поле "размылось". Есть ли способ инициировать проверку события keyup с помощью XML?


person Damiao    schedule 03.12.2017    source источник


Ответы (1)


Вы можете получить значение, которое будет обновляться по мере ввода пользователем, не дожидаясь, пока пользователи нажмут ввод или пока поле потеряет фокус, добавив атрибут incremental="true" в ваш <xf:input>. Это не значение по умолчанию, так как это создает больше помех между браузером и сервером, а также увеличивает нагрузку на сервер, и часто в этом нет необходимости.

person avernet    schedule 04.12.2017
comment
Это немного помогает, но... Мы заметили, что проверка поля ввода при нажатии клавиши не срабатывает, когда пользователь попадает на это поле в первый раз, а только после того, как он повторно посещает это поле. Кроме того, у нас есть несколько элементов в форме, которые являются не только полями ввода, такими как <xf:select1>, <fr:number>... Атрибут incremental="true", похоже, не работает с ними. Есть ли у вас какие-либо предложения относительно того, как справиться с такими элементами, чтобы их проверка срабатывала при нажатии клавиши? - person Damiao; 05.12.2017
comment
Наша форма не такая большая, и мы не ожидаем, что много пользователей будут использовать ее одновременно. Сказав, что мы, безусловно, взвешиваем все за и против использования проверки на событии keyup. - person Damiao; 05.12.2017
comment
@Damiao Вы говорите, что мы заметили, что проверка поля ввода при нажатии клавиши не срабатывает, когда пользователь попадает в это поле в первый раз. Какие шаги я должен предпринять, чтобы воспроизвести то, что вы видите? - person avernet; 05.12.2017
comment
возможно, это видео может лучше объяснить, что я имел в виду - person Damiao; 06.12.2017
comment
@Damiao Я вижу, что происходит, и создал задачу #3385. Там можно посмотреть обсуждение. На данный момент, действительно, с учетом CSS Form Runner, даже если класс xforms-invalid обновляется по мере ввода пользователем, ошибка не будет отображаться до тех пор, пока пользователи не уйдут из поля. - person avernet; 06.12.2017
comment
Спасибо за быстрый ответ. Еще одна часть моего вопроса заключалась в том, можно ли использовать аналогичную логику в других полях формы, в основном для выбора (выпадающих) полей? Потому что, опять же, проверка срабатывает только тогда, когда пользователь вводит/щелкает мышью за пределами поля? - person Damiao; 07.12.2017
comment
@Damiao Для раскрывающегося списка, в каком браузере вы это видите? Я тестирую это с помощью Chrome, и даже без пометки поля как добавочного новое значение отправляется на сервер каждый раз, когда вы меняете значение в раскрывающемся списке. - person avernet; 07.12.2017
comment
Вы правы, казалось, что проверка не срабатывает, когда пользователь выбирает пустое значение в верхней части раскрывающегося списка, но на самом деле это работает так, как ожидалось. Простите за это. - person Damiao; 08.12.2017
comment
@Damiao Хорошо; и спасибо, что подтвердили это. Что касается #3385, пока это не будет поддерживаться, что, скорее всего, мы не будем получить шанс сделать на 2017.2, у вас есть обходной путь или вы в состоянии жить без него? - person avernet; 08.12.2017
comment
Это была просто исследовательская задача, чтобы выяснить, сколько усилий нам потребуется, чтобы изменить форму, в которой мы должны выполнять некоторые вычисления сразу после того, как пользователь начинает печатать, вместо того, чтобы нажимать кнопку вычисления, как это реализовано в настоящее время. Я могу написать вам более подробно по электронной почте (у нас уже была переписка несколько раз), так как я не думаю, что этот разговор будет полезен для остального сообщества. - person Damiao; 09.12.2017
comment
Да, конечно, @Damiao, не стесняйтесь, пишите мне. - person avernet; 11.12.2017