如何在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')
设置它。
你的第二个问题。
我从来没有尝试过自动设置加载方法的html值,对不起。 当然,你可以做类似的事情
$('#subtotal').load( 'compz.php?prodid=' + x + '&qbuys=' + y, function(response){ $('#subtotal').val(response); });
testing它,因为我手写编码;)
我想指出,.val()也适用于selectselect当前选定的值。