2013-07-30 2 views
1

Je souhaite valider la saisie de l'utilisateur lorsque l'utilisateur a cliqué sur le bouton Envoyer, mais cela ne fonctionnera pas.La validation du champ jQuery ne fonctionne pas

jQuery

$(document).ready(function() { 
    function validateForm() { 
     if ($('#u').value() == '') 
     { 
     alert("no value found"); 
     return false; 
     } 

    }); 

}); 

HTML

<form name="myForm" action="main.php" onsubmit="return validateForm()" method="post"> 
    <input type="text" id="u" /> 
    <input type="submit" value="submit" /> 
</form> 
+0

Il n'y a pas de 'id =" u "' dans votre formulaire. – Barmar

+0

Que voulez-vous dire par "ça ne marchera pas"? – federicot

+0

juste '$ ('# u'). Val()'. Et vous l'obtiendrez –

Répondre

2

Il y a beaucoup de problèmes dans votre code.

  • La valeur est pas un function mais attribute enlever, vous pouvez utiliser val() et aussi vous ne pouvez pas utiliser la valeur avec un objet jQuery vous pouvez l'utiliser avec un objet DOM.

  • Vous avez probablement oublié d'attribuer un identifiant à votre champ de saisie.

  • La déclaration <input type="text"> devrait b4 <input id="u" type="text">

  • Vous avez parenthèse supplémentaire ferme après support currly de la fonction valideFormulaire, vous ne fermons pas les balises d'entrée.

Live Demo

if ($('#u').val() == '') 
{ 
    alert("no value found"); 
    return false; 
} 

Vous pouvez utiliser la méthode javascript natif getElementById pour obtenir l'élément DOM (objet) et la propriété de la valeur d'usage de cet objet.

Live Demo

if (document.getElementById('u').value == '') 
{ 
    alert("no value found"); 
    return false; 
} 
+1

Vrai, mais il n'y a pas id = "u", donc votre réponse ne fonctionne pas pour son problème particulier . EDIT: Maintenant, la question comprend id = "u", il vient de le modifier. Lol. –

+0

Merci @ AlejandroIván, vous avez raison, mis à jour ma réponse. – Adil

+0

Je veux changer la valeur de #label au lieu d'alerte. C'est pourquoi j'ai utilisé jquery – IceDawg

0

Essayez

if ($('#u').value() == '') 
{ 
    alert("no value found"); 
    return false; 
} else { 
    $('form[name="myForm"]').submit(); 
} 
+0

@ campari alors il ne va pas envoyer le formulaire du tout .. – IceDawg

0

Comme suggéré @Barmar vérifier votre code existant pour l'ID manquant. Je voudrais ajouter le id="u" au <input type="text"> et également faire attention en choisissant des noms d'identification qui sont ambigus particulièrement pour que d'autres pourraient lire votre code plus tard.

Maintenant que vous avez modifié la question initiale, il est difficile de voir comment ma réponse apparaît pertinente

0

Par ailleurs, je trouve une maladresse dans votre code. Concentrons à cette ligne:

...... 
    if ($('#u').value() == '') 
    { 
    alert("no value found"); 
    return false; 
    } 

}); 

}); 

Il y a deux });, dont une pour $(document) et dont une pour if() ?? Bien que pour if(), ne tapez pas comme cela, juste } pour la fermeture conditionnelle. Et pour faire un function ..., vous n'avez pas besoin de mettre la fonction à l'intérieur $(document).ready. Il peut être autonome.Par exemple:

function validateForm() { 

    if ($('#u').val() == '') 
    { 
     alert("no value found"); 
     return false; 
    } 

} 

Et vous devriez changer .value() pour .VAL()

See this pour le résultat. Espérons que cela aide

Questions connexes