2010-11-29 7 views
0

J'ai une question liée à jquery. Fondamentalement, je veux faire une chose très simple. J'ai un champ de saisie de texte. Sur soumettre, je veux afficher un message d'erreur si le champ est vide. Je l'ai fait de cette façon:jquery valider champ vide

errMsg = "Please write name";    
    $("div#errMsg").css("background-color", "red"); 
    $("div#errMsg").html(errMsg); 

et dans le code HTML:

<div id="errMsg"></div> 
    <strong>Name: </strong> 
    <input name="name" id="name" type="text" maxlength="255" size="50" /> 

Il fonctionne très bien, mais il y a un problème. Lorsque je laisse le champ vide et qu'il affiche le message d'erreur, le message d'erreur ne disparaît pas sans actualiser la page. J'essaie de le faire de sorte que quand il y a un message d'erreur, et je tape quelque chose dans le champ, il supprime automatiquement l'erreur sans actualiser la page. Toute aide serait grandement appréciée. Merci.

Répondre

0
$('#name').keyup(function() { 

    if ($(this).val()) { 
     $("div#errMsg").fadeOut(100); 
    } 

}); 

Assurez-vous d'appeler show()$("div#errMsg") prochaine fois que vous affichez.

+0

Merci pour votre réponse. Im essayant de faire la même manière, cependant je ne peux toujours pas le faire fonctionner comme Im très nouveau à jquery. pouvez-vous s'il vous plaît donner un exemple pour l'utiliser? par exemple. comme vous l'avez dit, comment puis-je montrer() la prochaine fois? – Billa

+0

@ user523364 Modifier la ligne de l'exemple que vous avez donné '$ (" div # errMsg "). Css (" background-color "," red "). Show();' – alex

+0

Merci beaucoup alex. Cela m'a vraiment aidé :) – Billa

0

Enregistrez un programme d'écoute pour le keypress event. Vous pouvez ensuite valider à nouveau le champ chaque fois que l'utilisateur tape quelque chose dedans. Une alternative consiste à utiliser le change event, qui est uniquement déclenché lorsque l'utilisateur modifie le champ, puis place le focus sur autre chose.