I am building simple client side valditation using Judge gem.
Everything worked perfect till I choosed to run validations on "blur" instead of button click.
Script:
var divs = ["advertisement_age","advertisement_weight","advertisement_region_id","advertisement_height","advertisement_name","advertisement_phone_number","Record_Start_Time",
"Record_End_Time","Record_Start_Time2","Record_End_Time2","advertisement_description", "advertisement_description_ru", "advertisement_terms_of_service"];
var arrayLength = divs.length;
var error_count =0;
for (var i = 0; i < arrayLength; i++) {
$(document.getElementById(divs[i])).blur(function(){
judge.validate(document.getElementById(divs[i]), { // This line causes error
valid: function(element) {
element.style.border = '1px solid green';
},
invalid: function(element, messages) {
element.style.border = '1px solid red';
// alert(messages.join(','));
}
});
});
}
In Mozzila Firebug there isn't any error message when I reload page. Error shows up when blur event is triggered.
Error message:
TypeError: this.element is null
this.attrValidators = root.JSON.parse(this.element.getAttribute('data-validate')...
I don't understand why it crashes at second document.getElementById(divs[i])
instead of the first if that array is valid?
Any suggestions ?
Thanks