I am working on a custom live validation for a form element - textarea
. I am trying to add a focus
listener in a for loop for every field from my array.
Code:
var fieldIds = ["field10","field8","field6","field5","field4"];
//On focus out/focus in
for (var i=0; i<fieldIds.length;i++){
$( "#"+fieldIds[i] ).focusout(function() {
focusOutValidation(fieldIds[i]);
});
$( "#"+fieldIds[i] ).focus(function() {
focusInValidation(fieldIds[i]);
});
}
function focusOutValidation(fieldId){
if ($('#'+fieldId).val().length == 0){
$('#'+fieldId).removeClass('LV_valid_field');
$('#'+fieldId).addClass('LV_invalid_field');
}else{
$('#'+fieldId).addClass('LV_valid_field');
$('#'+fieldId).removeClass('LV_invalid_field');
}
}
function focusInValidation(fieldId){
if ($('#'+fieldId).val().length == 0){
$('#'+fieldId).removeClass('LV_invalid_field');
}
For some reason, during debugging, when I focus any of the fields from the array, the script goes to the focusInValidation
function, but fieldId
is undefined. Any idea?