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),
...