2010-10-12 5 views
0

Quelqu'un peut-il me dire ce que cela fait? Comment devrais-je me référer à ceci dans mon HTML? Ce que je veux, c'est faire écho à un message d'erreur dans le code HTML.Jquery addClass question

$('#' + $field) 
    .addClass('invalid') 
    .siblings('.error') 
     .text($message) 
     .show(); 
+0

Oui, je vois que vous voulez faire écho à un message d'erreur. Mais quand voudriez-vous ti? Comment voulez-vous qu'il apparaisse? où? – Reigel

+0

Reigel, je voudrais utiliser le message d'erreur dans un div ci-dessous mon html. – jim

Répondre

1
$('#' + $field) 
    // finding an element that has the `id` of the string/object referred to by $field 
    .addClass('invalid') 
    // adding the class-name 'invalid' to this element 
    .siblings('.error') 
     // selecting the sibling element of class-name 'error' 
     .text($message) 
     // replacing the text of that sibling, if any, with the value represented by the variable '$message' 
     .show(); 
     // showing/un-hiding that element. 

Vous pouvez l'utiliser en affectant d'abord un élément à $field, en ajoutant un élément en tant que frères et soeurs de cet élément du nom de classe « d'erreur », et l'attribution d'un message à la variable $message.


Edité en réponse à la demande de l'OP des éclaircissements (en commentaire).

Comme exemple assez basique:

$(document).ready(
    function(){ 
     var $field = $('input[name=fieldName]').attr('id'); 
     var error = 'This field needs something else. Such as...'; 

     $('#'+$field).addClass('invalid').siblings('.error').text($message).show(); 
    } 
); 

<form action="" method="get"> 
    <fieldset> 
     <label for="fieldName">This is a label:</label> 
     <input type="text" name="fieldName" id="fieldName" /> 

     <div class="error"></div> 
    </fieldset> 
</form> 

Rudimentary demo at JS Fiddle

+0

David, merci pour l'aide et l'explication. Je suis vraiment nouveau à JQ donc la plupart de ce que vous expliquez ne passe pas. Pourriez-vous me montrer comment j'ai besoin de l'utiliser en html? Comme ça?: '

' – jim

+0

Ai-je raison de dire que le message d'erreur sera répercuté dans la div? – jim

+0

Merci pour votre aide, David. Je peux certainement digérer cela et enfin comprendre comment tout cela se lie. – jim

0

Ajoute classname "invalide" (class = "invalide") au champ sélectionné et modifie les textes dans la fratrie avec classe ".error" et leur montre (supprime display: none).

+0

Merci Māris, maintenant j'ai juste besoin de comprendre comment les utiliser. :) – jim