Wie lade ich einen bestimmten Wert mit jquery richtig in ein Textfeld? Versuchte den folgenden, aber ich erhalte die [object Object]
Ausgabe als. Bitte klären Sie mich darüber auf, ich bin neu in 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
quelle
quelle
Antworten:
Ich denke, Sie möchten die Antwort des Anrufs auf die URL
'compz.php?prodid=' + x + '&qbuys=' + y
als Wert des Textfelds festlegen, oder? Wenn ja, müssen Sie Folgendes tun:Referenz:
get()
Sie haben zwei Fehler in Ihrem Code:
load()
fügt den vom Ajax zurückgegebenen HTML- Code in das angegebene Element ein:Mit dieser Methode können Sie den Wert eines Textfelds nicht festlegen.
$(selector).load()
Gibt das a jQuery- Objekt zurück . Standardmäßig wird ein Objekt konvertiert,[object Object]
wenn es als Zeichenfolge behandelt wird.Weitere Klarstellung :
Angenommen, Ihre URL kehrt zurück
5
.Wenn Ihr HTML so aussieht:
dann das Ergebnis von
wird sein
Aber in Ihrem Code haben Sie ein Eingabeelement. Theoretisch (es ist kein gültiges HTML und funktioniert nicht wie Sie bemerkt haben) würde ein gleichwertiger Aufruf dazu führen
Aber du brauchst es tatsächlich
Daher können Sie nicht verwenden
load()
. Sie müssen eine andere Methode verwenden, die Antwort abrufen und selbst als Wert festlegen.quelle
$('#subtotal').val(str3);
weilload()
es nicht so funktioniert, wie Sie es sich vorgestellt haben. Ja, Sie könnenload()
Text oder HTML in einendiv
Textfeldwert laden, jedoch nicht als Textfeldwert.data = data.replace(/\s+/, '');
Beachten Sie, dass das
.value
Attribut eine JavaScript-Funktion ist. Wenn Sie jQuery verwenden möchten, verwenden Sie:um den Wert zu erhalten, und:
um es einzustellen.
http://api.jquery.com/val/
In Bezug auf Ihr zweites Problem habe ich nie versucht, den HTML-Wert mithilfe der
load
Methode automatisch festzulegen . Natürlich können Sie so etwas tun:Beachten Sie, dass der obige Code nicht getestet wurde.
http://api.jquery.com/load/
quelle
val()
.Ich möchte Sie darauf hinweisen, dass .val () auch mit selects zusammenarbeitet, um den aktuell ausgewählten Wert auszuwählen.
quelle
Versuchen
Code-Snippet anzeigen
quelle