如何在jquery中设置文本框值

Wer*_*eta 105 javascript jquery

如何使用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);
}
Run Code Online (Sandbox Code Playgroud)

这是html表单:

<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>
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 166

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

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

参考: get()

您的代码中有两个错误:

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

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

    您无法使用该方法设置文本框的值.

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

进一步澄清:

假设您的网址返回5.

如果你的HTML看起来像:

<div id="foo"></div>
Run Code Online (Sandbox Code Playgroud)

然后结果

$('#foo').load('/your/url');
Run Code Online (Sandbox Code Playgroud)

将会

<div id="foo">5</div>
Run Code Online (Sandbox Code Playgroud)

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

<input id="foo">5</input>
Run Code Online (Sandbox Code Playgroud)

但你真的需要

<input id="foo" value="5" />
Run Code Online (Sandbox Code Playgroud)

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


Mau*_*uro 56

值是javascript使用你应该使用的jQuery语言

$('#pid').val()
Run Code Online (Sandbox Code Playgroud)

得到和

$('#pid').val('value')
Run Code Online (Sandbox Code Playgroud)

设置它.

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

你的第二个问题.

我从未尝试过load方法的html值的自动设置,抱歉.当然,你可以做类似的事情

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

测试它因为我是手写编码;)

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

  • 值得指出[`val()`](http://api.jquery.com/val/)的相关[jQuery api](http://api.jquery.com/)页面,以供参考. (2认同)

Oli*_*ech 5

我想指出你.val()也可以选择选择当前选中的值.