jQuery change la valeur du texte d'entrée

155

Je ne trouve pas le bon sélecteur pour:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

Je veux changer la valeur en = 000000. J'ai besoin du sélecteur pour trouver le "nom" et non l'identifiant de l'entrée de texte.

Cela ne devrait-il pas fonctionner?:

$("text.sitebg").val("000000");

La solution présentée ne fonctionne pas, quel est le problème avec cela?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

Les données JSON fonctionnent correctement; l'idée est de transmettre ultérieurement les valeurs JSON dans les valeurs de texte d'entrée du formulaire. Mais ne fonctionne pas :(

Joricam
la source

Réponses:

308

non, vous devez faire quelque chose comme:

$('input.sitebg').val('000000');

mais vous devriez vraiment utiliser des identifiants uniques si vous le pouvez.

Vous pouvez également obtenir des informations plus spécifiques, telles que:

$('input[type=text].sitebg').val('000000');

ÉDITER:

faites ceci pour trouver votre entrée en fonction de l'attribut name:

$('input[name=sitebg]').val('000000');
Jason
la source
J'accepterai ce awnser, pouvez-vous recommander un bon livre / tutoriel (de préférence un livre) sur jquery où je peux vraiment en apprendre davantage sur les sélecteurs? en particulier les sélecteurs de formulaire?
Joricam
7
c'est de loin la meilleure chose sur Internet: futurecolors.ru/jquery
Jason
@Jason Le lien est rompu, quel est le titre du livre s'il vous plaît?
oyalhi
@oyalhi oh non! Je suis désolé. ce commentaire a 5 ans, alors je suppose qu'ils l'ont supprimé :(
Jason
@Jason Oui malheureusement. Cependant, vous souvenez-vous du titre du livre?
oyalhi
31

jQuery pour changer la valeur du champ de saisie de texte est:

$('#colorpickerField1').attr('value', '#000000')

cela changera l'attribut valuede l'élément DOM avec l'ID #colorpickerField1de #EEEEEEà#000000

Vladimir Kroz
la source
26

La meilleure pratique consiste à utiliser l'identifiant directement:

$('#id').val('xxx');

MGE
la source
simple et meilleur :)
MRRaja
2
Pourquoi cela fonctionne-t-il mais document.getElementById("#id").value = 'xxx';ne fonctionne pas pour moi? Il ne modifie pas la valeur de texte qui apparaît, seulement la propriété value de l'élément DOM.
user3494047
1
Vous utilisez déjà la méthode ById, # est pour la notation css. Retirez-le.
Scott Chu
9

Lorsque vous définissez la nouvelle valeur de l'élément, vous devez modifier le déclencheur d'appel.

$('element').val(newValue).trigger('change');

Richelly Italo
la source
Cela a résolu un problème pour moi où le gestionnaire d'événement de modification était appelé deux fois; une fois avec la nouvelle valeur, puis à nouveau avec [attr = val]
Peter Lenjo
3

En ajoutant simplement à la réponse de Jason, le .sélecteur ne concerne que les classes. Si vous souhaitez sélectionner autre chose que l'élément, l'ID ou la classe, vous devez l'envelopper entre crochets.

par exemple

$('element[attr=val]')

Robert Ingrum
la source