如何在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); } 

这里是html表单:

 <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()

你的代码中有两个错误:

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

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

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

  • $(selector).load()返回一个jQuery 对象 。 当被视为string时,默认情况下对象被转换为[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() 。 你必须使用另一种方法,得到答案,并将其设置为自己的价值。

值是JavaScript使用jQuery语言,你应该使用

 $('#pid').val() 

得到和

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

设置它。

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

你的第二个问题。

我从来没有尝试过自动设置加载方法的html值,对不起。 当然,你可以做类似的事情

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

testing它,因为我手写编码;)

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

我想指出,.val()也适用于selectselect当前选定的值。