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

Продолжаем издеваться над 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
11.01.2013, 15:31
    #38106555
iConst
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной велосипед: Form & Validator
scymaks...
а еще же нужно валидировать... Поэтому добавляем еще:
...А еще нужно маскИровать инпуты...

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

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

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

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

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


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

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


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