115 votes

comment définir la valeur de la zone de texte dans jQuery

Comment charger correctement une certaine valeur dans une zone de texte à l'aide de jquery? J'ai essayé celle ci-dessous mais j'obtiens le [object Object] en sortie. Veuillez m'éclairer à ce sujet, je suis nouveau sur jQuery.

  proc = function(x,y) {
        var str1 = $('#pid').value;
        var str2 = $('#qtytobuy').value;
     var str3= $('#subtotal').load('compz.php?prodid=' + x + '&qbuys=' + y);
    $('#subtotal').val(str3);
    }
 

Et voici la forme HTML:

 <form name="yoh" method="get"> 
Product id: <input type="text" name="pid"  value=""><br/>

Quantity to buy:<input type="text" name="qtytobuy"  value="" onkeyup="proc(document.yoh.pid.value, this.value);"></br>

Subtotal:<input type="text" name="subtotal" id="subtotal"  value=""></br>
<div id="compz"></div>

</form>
 

180voto

Felix Kling Points 247451

Je pense que vous voulez définir le temps de réponse de l'appel à l'URL 'compz.php?prodid=' + x + '&qbuys=' + y de la valeur de la zone de texte à droite? Si oui, vous avez à faire quelque chose comme:

$.get('compz.php?prodid=' + x + '&qbuys=' + y, function(data) {
    $('#subtotal').val(data);
});

Référence: get()

Vous avez deux erreurs dans votre code:

  • load() met le HTML retourné à partir de l'Ajax dans l'élément spécifié:

    Charger des données à partir du serveur et de placer le code HTML renvoyé dans la correspondance de l'élément.

    Vous ne pouvez pas définir la valeur d'un textbox avec cette méthode.

  • $(selector).load() renvoie le jQuery objet. Par défaut, un objet est converti [object Object] quand il est traité comme une chaîne de caractères.

Précisions supplémentaires:

En supposant que votre URL retours 5.

Si votre code HTML ressemble à:

<div id="foo"></div>

alors le résultat de

$('#foo').load('/your/url');

sera

<div id="foo">5</div>

Mais dans votre code, vous avez un élément de saisie. En théorie (il n'est pas valide HTML et ne fonctionne pas comme vous l'avez remarqué), un équivalent d'appel aurait pour résultat

<input id="foo">5</input>

Mais vous avez réellement besoin

<input id="foo" value="5" />

Par conséquent, vous ne pouvez pas utiliser load(). Vous devez utiliser une autre méthode, obtenir la réponse et la définir comme valeur vous-même.

58voto

Mauro Points 1101

la valeur est javascript pour utiliser jQuery langue que vous devez utiliser

$('#pid').val()

pour obtenir et

$('#pid').val('value')

pour le régler.

http://api.jquery.com/val/

Votre deuxième question.

Je n'ai jamais essayé la configuration automatique de la valeur html de la méthode de chargement, désolé. Pour sûr, vous pouvez faire quelque chose comme

$('#subtotal').load( 'compz.php?prodid=' + x + '&qbuys=' + y, function(response){ $('#subtotal').val(response);
});

Le tester car je suis écrivez-codage ;)

http://api.jquery.com/load/

5voto

Oliver M Grech Points 1506

Je tiens à vous signaler que .val () fonctionne également avec selects pour sélectionner la valeur actuellement sélectionnée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X