Jak poprawnie załadować określoną wartość do pola tekstowego za pomocą jquery? Wypróbowałem poniższy, ale otrzymuję [object Object]
jako dane wyjściowe. Proszę mnie oświecić, jestem nowy w 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
źródło
źródło
Odpowiedzi:
Myślę, że chcesz ustawić odpowiedź na wywołanie adresu URL
'compz.php?prodid=' + x + '&qbuys=' + y
jako wartość pola tekstowego, prawda? Jeśli tak, musisz zrobić coś takiego:Odniesienie:
get()
Masz dwa błędy w kodzie:
load()
umieszcza kod HTML zwrócony z Ajax do określonego elementu:Nie możesz ustawić wartości pola tekstowego tą metodą.
$(selector).load()
zwraca obiekt jQuery . Domyślnie obiekt jest konwertowany na obiekt[object Object]
traktowany jako ciąg.Dalsze wyjaśnienie :
Zakładając, że Twój URL powróci
5
.Jeśli Twój kod HTML wygląda tak:
to wynik
będzie
Ale w swoim kodzie masz element wejściowy. Teoretycznie (nie jest to poprawny HTML i nie działa tak, jak zauważyłeś), równoważne wywołanie spowodowałoby
Ale naprawdę potrzebujesz
Dlatego nie możesz użyć
load()
. Musisz użyć innej metody, uzyskać odpowiedź i samodzielnie ustawić ją jako wartość.źródło
$('#subtotal').val(str3);
ponieważload()
nie działa tak, jak myślałeś, że działa. Tak, możesz użyćload()
do załadowania tekstu lub kodu HTML dodiv
wartości pola tekstowego, ale nie jako wartości pola tekstowego.data = data.replace(/\s+/, '');
Zwróć uwagę, że
.value
atrybut jest funkcją JavaScript. Jeśli chcesz używać jQuery, użyj:aby uzyskać wartość i:
ustawić to.
http://api.jquery.com/val/
Jeśli chodzi o twój drugi problem, nigdy nie próbowałem automatycznie ustawiać wartości HTML za pomocą tej
load
metody. Na pewno możesz zrobić coś takiego:Zauważ, że powyższy kod jest nieprzetestowany.
http://api.jquery.com/load/
źródło
val()
.Chciałbym zwrócić uwagę na to, że .val () działa również z zaznaczeniami, aby wybrać aktualnie wybraną wartość.
źródło
próbować
Pokaż fragment kodu
źródło