Comment identifier les zones de texte vides à l'aide de jQuery ? J'aimerais le faire en utilisant des sélecteurs si cela est possible. De plus, je dois sélectionner sur l'id puisque dans le code réel où je veux utiliser ceci, je ne veux pas sélectionner toutes les entrées de texte.
Dans les deux exemples de code suivants, le premier affiche avec précision la valeur saisie par l'utilisateur dans la zone de texte "txt2". Le deuxième exemple identifie qu'il y a une zone de texte vide, mais si vous la remplissez, il la considère toujours comme vide. Comment cela se fait-il ?
Cela peut-il être fait en utilisant uniquement des sélecteurs ?
Ce code rapporte la valeur dans la zone de texte "txt2" :
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#cmdSubmit').click(function() {
alert($('[id=txt2]').val());
});
});
</script>
</head>
<body>
<form>
<input type="text" name="txt1" id="txt1" value="123" /><br />
<input type="text" name="txt2" id="txt2" value="" /><br />
<input type="text" name="txt3" id="txt3" value="abc" /><br />
<input type="submit" name="cmdSubmit" id='cmdSubmit' value="Send" /><br />
</form>
</body>
</html>
Ce code rapporte toujours la boîte de texte "txt2" comme étant vide :
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#cmdSubmit').click(function() {
if($('[id^=txt][value=""]').length > 0) {
if (!confirm("Are you sure you want to submit empty fields?")) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
}
});
});
</script>
</head>
<body>
<form>
<input type="text" name="txt1" id="txt1" value="123" /><br />
<input type="text" name="txt2" id="txt2" value="" /><br />
<input type="text" name="txt3" id="txt3" value="abc" /><br />
<input type="submit" name="cmdSubmit" id='cmdSubmit' value="Send" /><br />
</form>
</body>
</html>
6 votes
Quelqu'un sait-il si '[value=]' ignore l'entrée de l'utilisateur et vérifie seulement ce qui est dans la source ?
0 votes
Ai-je raison de penser que le filtre :empty est fait pour ce travail ? $('input[type=text]:empty').doStuff() ;
1 votes
Lire la documentation - docs.jquery.com/Selectors/empty . Empty est pour les éléments qui n'ont pas d'enfants, PAS de valeur.