Comment puis-je charger correctement une certaine valeur dans une zone de texte à l'aide de jquery? J'ai essayé celle ci-dessous mais j'obtiens la [object Object]
sortie. Veuillez m'éclairer à ce sujet, je suis nouveau dans 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);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<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>
javascript
jquery
Wern Ancheta
la source
la source
Réponses:
Je pense que vous souhaitez définir la réponse de l'appel à l'URL
'compz.php?prodid=' + x + '&qbuys=' + y
comme valeur de la zone de texte, n'est-ce pas? Si c'est le cas, vous devez faire quelque chose comme:Référence:
get()
Vous avez deux erreurs dans votre code:
load()
place le HTML renvoyé par Ajax dans l'élément spécifié:Vous ne pouvez pas définir la valeur d'une zone de texte avec cette méthode.
$(selector).load()
renvoie un objet jQuery . Par défaut, un objet est converti en[object Object]
lorsqu'il est traité comme une chaîne.Précisions supplémentaires :
En supposant que votre URL retourne
5
.Si votre HTML ressemble à:
puis le résultat de
sera
Mais dans votre code, vous avez un élément d'entrée. Théoriquement (ce n'est pas du HTML valide et ne fonctionne pas comme vous l'avez remarqué), un appel équivalent entraînerait
Mais tu as vraiment besoin
Par conséquent, vous ne pouvez pas utiliser
load()
. Vous devez utiliser une autre méthode, obtenir la réponse et la définir vous-même comme valeur.la source
$('#subtotal').val(str3);
parce queload()
cela ne fonctionne pas comme vous le pensiez. Oui, vous pouvez utiliserload()
pour charger du texte ou du HTML dans unediv
valeur de zone de texte, mais pas en tant que valeur de zone de texte.data = data.replace(/\s+/, '');
Notez que l'
.value
attribut est une fonctionnalité JavaScript. Si vous souhaitez utiliser jQuery, utilisez:pour obtenir la valeur, et:
pour le régler.
http://api.jquery.com/val/
En ce qui concerne votre deuxième problème, je n'ai jamais essayé de définir automatiquement la valeur HTML à l'aide de la
load
méthode. Bien sûr, vous pouvez faire quelque chose comme ceci:Notez que le code ci-dessus n'a pas été testé.
http://api.jquery.com/load/
la source
val()
, à des fins de référence.Je voudrais vous signaler que .val () fonctionne également avec selects pour sélectionner la valeur actuellement sélectionnée.
la source
essayer
Afficher l'extrait de code
la source