如何在jQuery中设置文本框值?

2022-08-30 05:25:27

如何使用jQuery将某个值正确加载到文本框中?尝试了下面的那个,但我得到了作为输出。请启发我,我是jQuery的新手。[object Object]

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>

答案 1

我想你想把对URL的调用响应设置为文本框的值对吗?如果是这样,您必须执行以下操作:'compz.php?prodid=' + x + '&qbuys=' + y

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

参考: get()

您的代码中有两个错误:

  • load() 将从 Ajax 返回的 HTML 放入指定的元素中:

    从服务器加载数据,并将返回的 HTML 放入匹配的元素中。

    不能使用该方法设置文本框的值。

  • $(selector).load()返回 a jQuery 对象。默认情况下,当对象被视为字符串时,将转换为对象。[object Object]

进一步澄清

假设您的 URL 返回 .5

如果你的 HTML 看起来像:

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

然后结果

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

将是

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

但是在代码中,您有一个输入元素。从理论上讲(它不是有效的HTML,并且不像您注意到的那样工作),等效调用将导致

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

但你实际上需要

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

因此,不能使用 。您必须使用另一种方法,获取响应并自行将其设置为值。load()


答案 2

请注意,该属性是 JavaScript 功能。如果要使用 jQuery,请使用:.value

$('#pid').val()

以获取值,然后:

$('#pid').val('value')

以设置它。

http://api.jquery.com/val/

关于您的第二个问题,我从未尝试使用该方法自动设置HTML值。当然,你可以做这样的事情:load

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

请注意,上面的代码未经测试。

http://api.jquery.com/load/