我正在为表单元素textarea
进行自定义实时验证。我正在尝试在for循环中为我的数组中的每个字段添加一个focus
侦听器。
代码:
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');
}
出于某种原因,在调试期间,当我关注数组中的任何字段时,脚本会转到focusInValidation
函数,但fieldId
未定义。有什么想法吗?