1. ホーム
  2. javascript

[解決済み] jQueryでtextboxの値を設定するには?

2022-10-15 01:46:09

質問

jQueryを使ってテキストボックスに特定の値を正しく読み込むにはどうしたらよいでしょうか?以下のものを試してみましたが、私は [object Object] を出力してしまいます。私は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>

どのように解決するのですか?

呼び出しのレスポンスをURLに設定したいのだと思います。 'compz.php?prodid=' + x + '&qbuys=' + y をテキストボックスの値として設定したいのですよね?もしそうなら、次のようなことをしなければなりません。

$.get('compz.php?prodid=' + x + '&qbuys=' + y, function(data) {
    $('#subtotal').val(data);
});

参照 get()

あなたのコードには2つのエラーがあります。

  • load() HTML を指定された要素に入れる。

    サーバーからデータを読み込み、返されたHTMLをマッチした要素に配置します。

    そのメソッドでテキストボックスの値を設定することはできません。

  • $(selector).load() はjQueryの オブジェクトを返します。 . デフォルトでは、オブジェクトは [object Object] に変換されます。

さらなる明確化 :

あなたのURLが 5 .

のようなHTMLの場合。

<div id="foo"></div>

の結果は

$('#foo').load('/your/url');

になります。

<div id="foo">5</div>

しかし、あなたのコードでは、input 要素があります。 理論的には (を使うことができますが(これは妥当なHTMLではなく、あなたが気づいたように動作しません)、同等の呼び出しは次のようになります。

<input id="foo">5</input>

しかし、実際に必要なのは

<input id="foo" value="5" />

したがって load() . 別の方法を使い、自分でレスポンスを取得し、それを値として設定する必要があります。