Bagaimana cara memuat dengan benar nilai tertentu ke dalam kotak teks menggunakan jquery? Mencoba yang di bawah ini tetapi saya mendapatkan [object Object]
sebagai output. Tolong jelaskan saya tentang ini, saya baru mengenal 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
sumber
sumber
Jawaban:
Saya pikir Anda ingin menyetel respons panggilan ke URL
'compz.php?prodid=' + x + '&qbuys=' + y
sebagai nilai kotak teks, bukan? Jika ya, Anda harus melakukan sesuatu seperti:Referensi:
get()
Ada dua kesalahan dalam kode Anda:
load()
menempatkan HTML yang dikembalikan dari Ajax ke elemen yang ditentukan:Anda tidak dapat menyetel nilai kotak teks dengan metode itu.
$(selector).load()
mengembalikan objek jQuery . Secara default, sebuah objek diubah menjadi[object Object]
ketika diperlakukan sebagai string.Klarifikasi lebih lanjut :
Dengan asumsi URL Anda kembali
5
.Jika HTML Anda terlihat seperti:
lalu hasil
akan
Tetapi dalam kode Anda, Anda memiliki elemen input. Secara teoritis (ini bukan HTML yang valid dan tidak berfungsi seperti yang Anda perhatikan), panggilan yang setara akan menghasilkan
Tapi sebenarnya Anda membutuhkannya
Oleh karena itu, Anda tidak dapat menggunakan
load()
. Anda harus menggunakan metode lain, dapatkan respons dan atur sendiri sebagai nilai.sumber
$('#subtotal').val(str3);
karenaload()
tidak berfungsi seperti yang Anda kira. Ya, Anda dapat menggunakanload()
untuk memuat teks atau HTML ke dalamdiv
tetapi tidak sebagai nilai kotak teks.data = data.replace(/\s+/, '');
Perhatikan bahwa
.value
atributnya adalah fitur JavaScript. Jika Anda ingin menggunakan jQuery, gunakan:untuk mendapatkan nilainya, dan:
untuk mengaturnya.
http://api.jquery.com/val/
Mengenai masalah kedua Anda, saya belum pernah mencoba mengatur nilai HTML secara otomatis menggunakan
load
metode ini. Yang pasti, Anda bisa melakukan sesuatu seperti ini:Perhatikan bahwa kode di atas belum teruji.
http://api.jquery.com/load/
sumber
val()
, untuk tujuan referensi.Saya ingin menunjukkan kepada Anda bahwa .val () juga berfungsi dengan pemilihan untuk memilih nilai yang dipilih saat ini.
sumber
mencoba
Tampilkan cuplikan kode
sumber