如何在jquery中设置文本框值

时间:2010-11-16 12:04:41

标签: 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);
}
<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>

4 个答案:

答案 0 :(得分:161)

我认为你想将对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()返回jQuery 对象。默认情况下,对象在被视为字符串时会转换为[object Object]

进一步澄清

假设您的网址返回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()。您必须使用其他方法,获取响应并自行将其设置为值。

答案 1 :(得分:56)

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

$('#pid').val()

得到和

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

设置它。

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

你的第二个问题。

我从未尝试过load方法的html值的自动设置,抱歉。当然,您可以执行类似

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

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

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

答案 2 :(得分:5)

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

答案 3 :(得分:0)

尝试

subtotal.value= 5 // some value

proc = async function(x,y) {
  let url = "https://server.test-cors.org/server?id=346169&enable=true&status=200&credentials=false&methods=GET&" // some url working in snippet
  
  let r= await(await fetch(url+'&prodid=' + x + '&qbuys=' + y)).json(); // return json-object
  console.log(r);
  
  subtotal.value= r.length; // example value from json
}
<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" id="pid"  value=""><br/>

Quantity to buy:<input type="text" id="qtytobuy"  value="" onkeyup="proc(pid.value, this.value);"></br>

Subtotal:<input type="text" name="subtotal" id="subtotal"  value=""></br>
<div id="compz"></div>

</form>