2011-07-10 2 views
0

Je ne peux pas expliquer correctement celui-ci, alors voici une capture d'écran: enter image description hereévénement pour les attributs requis dans jquery

Comment capturer l'événement lorsque ce point fort rouge apparaît autour d'un champ e-mail sur firefox. Alors que je pourrais faire quelque chose. Le code ci-dessous est juste un code pseudo mélangé avec un code formel:

<script src="jq.js"></script> 
    <script> 
    $(function(){ 

     $('#btn_yo').click(function(){ 
      $('input').each(function(index){ 
       if($(this:required == 'true'){ 
        //do something 
       } 
      }); 
     }); 
    }); 
    </script> 
    <input type="text" name="name" id="name" required/> 
    <input type="email" name="mail" id="mail"/> 
    <input type="button" id="btn_yo" value="submit"/> 

l'email attribut accepte uniquement les attributs de messagerie, et quand vous entrez autre chose, son automatiquement mise en surbrillance avec une bordure rouge. Comment puis-je capturer cet événement afin que je puisse faire une action personnalisée au lieu de la surbrillance rouge qui est la valeur par défaut.

+1

Quand le 'apparaît rouge-highlight'? est-ce 'onFocus'? 'onTextChanged'? ou autre chose? –

+0

l'attribut e-mail n'accepte que les attributs d'e-mail et lorsque vous saisissez autre chose, il est automatiquement mis en surbrillance avec une bordure rouge. Comment puis-je capturer cet événement afin que je puisse faire une action personnalisée au lieu de la surbrillance rouge qui est la valeur par défaut. – user225269

+2

Est-ce que la surbrillance rouge apparaît parce que les données entrées sont invalides? –

Répondre

2

Je pense que probablement ce que vous voulez utiliser est blur, de sorte que lorsque l'utilisateur quitte un champ d'entrée donné, vous pouvez effectuer la validation de ce champ et le drapeau comme invalide si nécessaire. Par exemple:

$("input").blur(function(evt) { 
    if (this.required && this.value == "") { 
     alert(this.name + " is a required field!"); 
     $(this).addClass("error"); 
     this.focus(); 
    } 
    else { 
     $(this).removeClass("error"); 
    } 
}); 

Ce qui vous donne quelque chose comme ceci: http://jsfiddle.net/CJ5Zc/1/

0
$('#mail').focus(function(){ 

    alert('focused'); 
}); 
+0

Pourquoi la downvote? Cela fait exactement ce que l'OP a demandé! – AlienWebguy