Como faço para carregar corretamente um determinado valor em uma caixa de texto usando jquery? Tentei o abaixo, mas recebo a [object Object]
saída como. Por favor, esclareça-me sobre isso, eu sou novo no 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
fonte
fonte
Respostas:
Acho que você quer definir a resposta da chamada para a URL
'compz.php?prodid=' + x + '&qbuys=' + y
como valor da caixa de texto certo? Nesse caso, você deve fazer algo como:Referência:
get()
Você tem dois erros em seu código:
load()
coloca o HTML retornado do Ajax no elemento especificado:Você não pode definir o valor de uma caixa de texto com esse método.
$(selector).load()
retorna o objeto a jQuery . Por padrão, um objeto é convertido em[object Object]
quando tratado como string.Esclarecimentos adicionais :
Supondo que seu URL retorne
5
.Se o seu HTML for semelhante a:
então o resultado de
será
Mas em seu código, você tem um elemento de entrada. Teoricamente (não é um HTML válido e não funciona como você percebeu), uma chamada equivalente resultaria em
Mas você realmente precisa
Portanto, você não pode usar
load()
. Você tem que usar outro método, obter a resposta e defini-la como valor você mesmo.fonte
$('#subtotal').val(str3);
porqueload()
não funciona como você pensava. Sim, você pode usarload()
para carregar texto ou HTML em um valor,div
mas não como caixa de texto.data = data.replace(/\s+/, '');
Observe que o
.value
atributo é um recurso JavaScript. Se você quiser usar jQuery, use:para obter o valor e:
para defini-lo.
http://api.jquery.com/val/
Em relação ao seu segundo problema, nunca tentei definir automaticamente o valor HTML usando o
load
método. Com certeza, você pode fazer algo assim:Observe que o código acima não foi testado.
http://api.jquery.com/load/
fonte
val()
para fins de referência.Gostaria de salientar que .val () também funciona com selects para selecionar o valor selecionado atualmente.
fonte
experimentar
Exibir trecho de código
fonte