2010-03-12 3 views
0

J'ai une radiobuttonlist; lorsque vous cliquez sur l'élément [1], une zone de texte s'affiche et mon validateur JQuery personnalisé est lié à l'événement onblur de la zone de texte. Voici une épurée version de mon validateur ..Comment puis-je détecter quel contrôle a déclenché un flou en utilisant javascript/jquery?

function AddMyValidator() { 
    $("input[id$='myTxt']").blur(function(e) { 
     var val = this.value.replace(" ", ""); 
     if (val.length == 0) { 
      //need to determine firing control here and show error message if not parent radiobuttonlist.item[0] 
      this.focus(); 
      $("span[id$='myError']").html("<span style='color:red;'>Error!</span>").show().animate({ opacity: 1.0 }, 3000).fadeOut("slow"); 
      return false; 
     } 
     return true; 
    }); 
} 

Je voudrais être en mesure de déterminer si l'événement de flou a été tiré par l'article [0], et afficher uniquement mon message d'erreur lorsqu'il est pas. Toutes les suggestions seraient grandement appréciées.

Répondre

0

j'ai fini par trouver la réponse ici

When onblur occurs, how can I find out which element focus went *to*?

C'est essentiellement ce que j'ai fini avec ..

function AddMyValidator() { 
$("input[id$='myTxt']").blur(function(e) { 
    var val = this.value.replace(" ", ""); 
    if (val.length == 0) { 
     var target = e.explicitOriginalTarget || document.activeElement; 
     if (!target.id.endsWith("myRadioButtonList_0")){ 
      this.focus(); 
      $("span[id$='myError']").html("<span style='color:red;'>Error!</span>").show().animate({ opacity: 1.0 }, 3000).fadeOut("slow"); 
      return false; 
     } 
    } 
    return true; 
}); 

}

Merci.

PS. Cela fonctionne très bien dans IE8, mais pas dans Firefox 3.6. Il semble que explicitOriginalTarget n'est plus supporté par Firefox. Je suis toujours à la recherche d'une bonne façon de faire cela.

0

Vérifier e.srcElement

+0

Merci pour votre aide. Je l'ai essayé, sans succès. J'ai déjà une poignée sur $ (this) - le contrôle que je suis en train de perdre. Ce dont j'ai besoin, c'est d'une poignée sur le contrôle de tir ou sur le contrôle, qui sera mise au point quand je reviendrai vrai. – tbilly

Questions connexes