Comment puis-je obtenir la valeur d'une zone de texte à l'aide de jQuery?

486

Je peux obtenir l'élément comme ceci, $("#txtEmail")mais je ne sais pas comment obtenir la valeur réelle.

Michée
la source
22
avez-vous essayé $ ("txtEmail"). val ()
Perpetualcoder
2
hehehe ... le problème était que j'avais oublié de référencer ma fonction dans l'événement click =)
Micah

Réponses:

765

Il y a une .val()méthode:

Si vous avez une entrée avec un id, txtEmailvous pouvez utiliser le code suivant pour accéder à la valeur de la zone de texte:

$("#txtEmail").val()

Vous pouvez également utiliser la val(string)méthode pour définir cette valeur:

$("#txtEmail").val("something")
neilprosser
la source
2
Pourquoi «.value ()» ne fonctionne-t-il pas dans jQuery? Je n'aurais pas cherché sur Google si c'était le cas, car c'est ce que j'ai essayé intuitivement. Pourquoi choisir de raccourcir deux caractères ...
Mike de Klerk
var user_email = $("#txtEmail").val()
Nipek
74

Utilisez la méthode .val ().

Je pense aussi que vous vouliez utiliser $("#txtEmail")comme $("txtEmail")retours des éléments de type <txtEmail>que vous n'avez probablement pas.

Voir ici dans la documentation jQuery .

Également la méthode jQuery val () .

Spencer Ruport
la source
23

Duplicata possible:

Juste des informations supplémentaires qui m'ont pris beaucoup de temps pour trouver. Et si vous utilisiez le nom du champ et non l'ID pour identifier le champ du formulaire. Vous le faites comme ceci:

Pour le bouton radio:

 var inp= $('input:radio[name=PatientPreviouslyReceivedDrug]:checked').val();

Pour la zone de texte:

 var txt=$('input:text[name=DrugDurationLength]').val();
Yoosaf Abdulla
la source
Soyez prudent lorsque vous publiez des réponses copier-coller passe-partout / verbatim à plusieurs questions, celles-ci ont tendance à être signalées comme "spam" par la communauté. Si vous faites cela, cela signifie généralement que les questions sont des doublons, alors signalez-les comme telles à la place: stackoverflow.com/questions/1320088
Kev
1
@Kev: Je ne connaissais pas un tel marquage. Cependant, je ne sais pas s'il s'agissait d'un doublon pendant la période où j'avais publié cette solution. Je n'ai pas pu en trouver un dans SO donc publié. Mais oui, je garderai à l'esprit et merci de me le faire savoir.
Yoosaf Abdulla
1
Le "input: text" a aidé parce que j'avais 2 contrôles avec le même nom. : <(Notez mon code, je l'ai hérité)
granadaCoder
6

Il existe une .val();méthode que vous pouvez utiliser.

Donc, dans votre situation, vous souhaitez utiliser $("#txtEmail").val();. Assurez-vous également d'ajouter la propriété id dans votre code html!

bouc émissaire17
la source
5

Utilisez la .val()méthode pour obtenir la valeur réelle de l'élément dont vous avez besoin.

PUBG
la source
4

Vous pouvez accéder à la valeur du contrôle Texbox soit par son ID, soit par son nom de classe.

Voici l'exemple de code:

<input type="text" id="txtEmail" class="textbox" value="1">

$(document).ready(function(){
   alert($("#txtEmail").val());
   alert($(".textbox").val());//Not recommended 
});

L'utilisation du nom de classe pour obtenir une valeur de contrôle de zone de texte peut renvoyer une autre valeur ou une valeur incorrecte, car le même nom de classe peut également être défini pour tout autre contrôle. Ainsi, obtenir la valeur d'une zone de texte spécifique peut être récupéré par son identifiant.

Akshay Chawla
la source
2

En utilisant

$("#txtEmail").val()

vous obtenez la valeur réelle de l'élément

MIlan Modh
la source