Регистрация  |  Вход

Как вы валидируете пользовательский ввод в своих SPA?

Привет,

как известно в ВФ есть такой тэг как apex:inputField, который позволяет отвалидировать пользовательский ввод на стороне клиента в зависимости от типа поля, к которому привязан. Полагаю, что есть какая-то стандартная валидация и на стороне сервера.

Но если делать полностью кастомное, и тем более SPA приложение работающее полностью асинхронно, то вероятно вам самим приходится заботиться о валидации пользовательского ввода. В связи с этим есть вопросы:

(1) и все-таки, вы используете apex:inputField / apex:outputField в своих фронт-энд приложениях или все делается на apex:inputText или стнадартный HTML inputs?

(2) если вы используете HTML inputs то какие либы использeете для валидации? это есть в jQuery? я помню что-то такое было в Ангуляре

(3) как вы валидируете пришедшие данные в контрорллер, если например приложение работает на Remore Actions? если приложение работает на стандартном РЕСТ АПИ то валидация на стороне сервера не нужна, как я понимаю?

(4) какими либами вы форматируете вывод данных, например если это DateTime?

спасибо

Привет,

как известно в ВФ есть такой тэг как apex:inputField, который позволяет отвалидировать  пользовательский ввод на стороне клиента в зависимости от типа поля, к которому привязан. Полагаю, что есть какая-то стандартная валидация и на стороне сервера.

Но если делать полностью кастомное, и тем более SPA приложение работающее полностью асинхронно, то вероятно вам самим приходится заботиться о валидации пользовательского ввода. В связи с этим есть вопросы:

(1) и все-таки, вы используете apex:inputField / apex:outputField в своих фронт-энд приложениях или все делается на apex:inputText или стнадартный HTML inputs?

(2) если вы используете  HTML inputs то какие либы использeете для валидации? это есть в jQuery? я помню что-то такое было в Ангуляре

(3) как вы валидируете пришедшие данные в контрорллер, если например приложение работает на Remore Actions? если приложение работает на стандартном РЕСТ АПИ то валидация на стороне сервера не нужна, как я понимаю?

(4) какими либами вы форматируете вывод данных, например если это DateTime?

спасибо

(1) чистый Visualforce + минимум JavaScript/CSS для показать/свернуть какие-то области.
(3) 50% - проверка данных в контроллере с помощью if, 50% - try/catch/DmlException/Savepoint

(1) чистый Visualforce + минимум JavaScript/CSS для показать/свернуть какие-то области.
(3) 50% - проверка данных в контроллере с помощью if, 50% - try/catch/DmlException/Savepoint 

Andrew Muzychuk
чистый Visualforce

спасибо, в теме не идет речь о "чистом ВФ" - с ним все более-менее понятно. Вопрос про полностью кастомный фронт-энд

[quote="Andrew Muzychuk"]чистый Visualforce [/quote]

спасибо, в теме не идет речь о "чистом ВФ" - с ним все более-менее понятно. Вопрос про полностью кастомный фронт-энд
https://docs.angularjs.org/guide/forms

Dmitry Lisovsky
https://docs.angularjs.org/guide/forms

хотите сказать, что тех возможностей по валидации, которые предлагает сам Ангуляр, вполне достатчно для работы? это было бы неплохо

[quote="Dmitry Lisovsky"]https://docs.angularjs.org/guide/forms[/quote]

хотите сказать, что тех возможностей по валидации, которые предлагает сам Ангуляр, вполне достатчно для работы? это было бы неплохо

Вполне хватает, кастомную валидацию никто не отменял, там уже чего душа пожелает :)

Вполне хватает, кастомную валидацию никто не отменял, там уже чего душа пожелает :)

Dmitry Lisovsky
Вполне хватает, кастомную валидацию никто не отменял, там уже чего душа пожелает :)

ок, спасибо, не плохо,

подождем что-кто напишет про валидацию на сервере в таких приложениях

[quote="Dmitry Lisovsky"]Вполне хватает, кастомную валидацию никто не отменял, там уже чего душа пожелает :)[/quote]

ок, спасибо, не плохо,

подождем что-кто напишет про валидацию на сервере в таких приложениях

Не проблема - ремоут экшены, вебсервисы

Не проблема - ремоут экшены, вебсервисы

Валидация на фронтенде это только 50% успеха и больше для красоты. Если озабочен безопасностью то без серверной перепроверки не обойтись.

На ангуляре как отметил Дима есть ng-form, которая работает вместе с html5 form validation.
Т.е. в принципе можешь использовать html5 и без ангуляра. Или использовать любую из jQuery либ, но в принципе они уже утратили свою актуальность с появлением html5 различных типов полей.

Но это все для красоты и удобства пользователей. Понятно что на SF случайных продвинутых пользователей со злыми намерениями не бывает, но мало ли. Поэтому на сцену выходит валидация на стороне apex. Вот тут что-то посоветовать пока не могу. Красивых готовых решений не видел да и не искал. Мне достаточно и ручной проверки.

Валидация на фронтенде это только 50% успеха и больше для красоты. Если озабочен безопасностью то без серверной перепроверки не обойтись.

На ангуляре как отметил Дима есть ng-form, которая работает вместе с html5 form validation.
Т.е. в принципе можешь использовать html5 и без ангуляра. Или использовать любую из jQuery либ, но в принципе они уже утратили свою актуальность с появлением html5 различных типов полей.

Но это все для красоты и удобства пользователей. Понятно что на SF случайных продвинутых пользователей со злыми намерениями не бывает, но мало ли. Поэтому на сцену выходит валидация на стороне apex. Вот тут что-то посоветовать пока не могу. Красивых готовых решений не видел да и не искал. Мне достаточно и ручной проверки.