VadilityTest

HTML

<script src="http://cloud.github.com/downloads/SteveSanderson/knockout/knockout-1.2.1.debug.js"></script>
<script src="http://validity.thatscaptaintoyou.com/lib/jquery.validity.js"></script>
<link rel="stylesheet" href="http://validity.thatscaptaintoyou.com/lib/jquery.validity.css">
    Firstname: <input type="text" id="firstname"  data-bind="validate: 'value1'" /><br/>
    Lastname:  <input type="text" id="lastname"  data-bind="validate : 'value2'" /><br/>
    Email:  <input type="text" id="email"   data-bind="validate : 'value3'" /><br/>
    
    <button id="b1">Submit</button>

JavaScript

// custombinding
ko.bindingHandlers.validate = {
    init: function(element, valueAccessor, allBindingsAccessor, context){
        var e = element,
            bindings = allBindingsAccessor(),
            value = ko.utils.unwrapObservable(valueAccessor()),
            wrapper = function () { return context[value]; },
            $element = $(element);
        
        if(bindings.valOptions)
        {
            var valOptions = bindings.valOptions;
            for(var validator in valOptions)
            {
                validationInfo[value].validators[validator] = valOptions[validator];
            }
        }
        
        

        
        
        
        var valFunction = getValFunction(validationInfo[value].validators);
        
        $element.attr('title', validationInfo[value].title);
        $element.addClass('sit-validate');
        
        //var valFunction = createFunction(); // MAGIC!!!
         
        
        
        //var step = findStep(); // MAGIC!!!
        var step = 'egon';
        if (!validationFunctions[step]) {
            validationFunctions[step] = [];
        }
        validationFunctions[step].push({ $element : $element, valFunction : valFunction });
        
        ko.bindingHandlers.value.init(element, wrapper, allBindingsAccessor, context);
            
    }, 
    update: function(element, valueAccessor, allBindingsAccessor, context){
        var e = element,
            bindings = allBindingsAccessor(),
            value = valueAccessor(),
            wrapper = function () { return context[ko.utils.unwrapObservable(value)]; };
        
        
        
        ko.bindingHandlers.value.update(element, wrapper, allBindingsAccessor, context);
    }
};


// gets the paramstring
function validatorParamMapper(key, infoObj) {
    var isObj = typeof(infoObj) === 'object',
        customMessage = (isObj && infoObj.hasOwnProperty('message')
                         ? infoObj.message 
                         : null),
   ...