繁体   English   中英

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

[英]How to set textbox value in 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>

我认为您想将对 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]视为字符串时,对象将转换为[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() 您必须使用另一种方法,获取响应并将其设置为自己的值。

请注意, .value属性是一个 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/

我想向您指出 .val() 也可以与 select 一起使用来选择当前选定的值。

尝试

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM