powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Очередной велосипед: Form & Validator
6 сообщений из 6, страница 1 из 1
Очередной велосипед: Form & Validator
    #38106514
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Продолжаем издеваться над JavaScript...

Вот есть у меня какая-то абстрактная форма. Ну скажем вообще простая:

Код: html
1.
2.
3.
4.
5.
6.
<form id="login-form">
     <input type="text" value="user"/>
     <input type="password" value="password"/>

     <input type="button" class="submitButton"/>
</form>



Хочется, скажем так в OOP стиле сделать отображение этой формы, то есть привязку всяких там событий, onClick всякие...

Как это лучше сделать?

Приходит в голову прямой вариант:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
var Form = function(parameters) {
    var properties = {
        form: $('#login-form'),
        submitButton: $('.submitButton', properties.form)
    };
  
    var methods = {
        init: function() {
            $.extend(properties, parameters);

            method.assignEvents();
        },
        assignEvents: function() {
              var $form = properties.form;
              var $submitButton = properties.submitButton;

              $form.click(function(event) { ... });
              
              $submitButton.click(function(event) { ... });
        }
    };
};



а еще же нужно валидировать... Поэтому добавляем еще:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
var Form = function(parameters) {
    var properties = {
        form: $('#login-form'),
        submitButton: $('.submitButton', properties.form)
    };
  
    var methods = {
        init: function() {
            $.extend(properties, parameters);

            method.assignEvents();
        },
        isValid: function() {
            var isValidForm = true;
            
            ...
            
            return isValidForm;
        },
        assignEvents: function() {
              var $form = properties.form;
              var $submitButton = properties.submitButton;

              $form.click(function(event) { ... });
              
              $submitButton.click(function(event) { 
                   ... 
                   if (!methods.isValid()) { throw {message: 'Form is not valid.'}; }
                   ...
              });
        }
    };
};



Но валидация тоже может быть весьма не простой. Может быть имеет смысл выделить объект?
Код: javascript
1.
   var FormValidator = function(parameters) { ... };



Какие тут best practices в таких задачах?
...
Рейтинг: 0 / 0
Очередной велосипед: Form & Validator
    #38106555
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scymaks...
а еще же нужно валидировать... Поэтому добавляем еще:
...А еще нужно маскИровать инпуты...

Зло в чистом виде... :)

Когда-то тоже решили перевернуть мир... И понеслось - усложнения, навороты, погоня за "одним флаконом"... В итоге стал вырисовываться никому не нужный стальной китайский самокат. И было сказано - СТОП!
В итоге ограничились некоторыми функциями рассовывания/сбора JSON объекта из/по составляющим форму полям/чекам/селектам для AJAX.
...
Рейтинг: 0 / 0
Очередной велосипед: Form & Validator
    #38106563
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты уверен, что это нужно? При наличии готовых зарекомендовавших себя решений?
Сомнения заключаются в том, что сколько не делай проверок на клиенте, на сервере все равно надо или повторять их, или добавлять дополнительные - ведь клиентские решения обойти несложно ... Вот и возникает вопрос - а зачем тогда и вовсе заморачиваться с клиентом?

А если действительно нужно достаточно серьезное решение, то надо смотреть на серверные MVC-движки и фреймворки. Смотрю, ты с Java, поэтому ты поймешь - брать тот же SpringMVC и юзать его taglib с серверной реализацией - формы практически без ручного управления сериализуются и валидируются на уровне фреймворка, да еще с аннотационным декларированием в соответствующих бинах. Чем не надежное решение?

P.S. Вот и iConst тоже того же мнения, но в других словах. Видать, тоже обжигался.
...
Рейтинг: 0 / 0
Очередной велосипед: Form & Validator
    #38106637
Фотография iConst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck... Вот и возникает вопрос - а зачем тогда и вовсе заморачиваться с клиентом?
...-Для самого клиента. Защита не от злодея - от дурака/блондинки/пенсионерки и т.п.
...
Рейтинг: 0 / 0
Очередной велосипед: Form & Validator
    #38106650
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
недавно глянул на альпаку ... заинтересовало, да все руки не доходят поизучать
автор, гляньте и Вы, может, это как раз то, что Вы ищете...
...
Рейтинг: 0 / 0
Очередной велосипед: Form & Validator
    #38108158
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iConst,

iConstКогда-то тоже решили перевернуть мир... И понеслось - усложнения, навороты, погоня за "одним флаконом"... В итоге стал вырисовываться никому не нужный стальной китайский самокат. И было сказано - СТОП!
В итоге ограничились некоторыми функциями рассовывания/сбора JSON объекта из/по составляющим форму полям/чекам/селектам для AJAX.


Ну, скажем так, у нас не сильно большой проект, но всё же хочется немного единообразия)

я просто еще не очень хороший архитектор. Даже можно сказать совсем начинающий архитектор.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Очередной велосипед: Form & Validator
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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