我想通过提供当前 URL 和当前用户从网络服务中获取 3 个值。我的网络服务接受 2 个参数 URL 和用户。 Web 服务工作正常。
现在我想使用 jquery.in txtOrgCity = city、txtPin = pin、txtCountry = country 将这 3 个值放入 3 个不同的文本框中
下面是 txtOrgCity 的代码
$(document).ready(function () {
$('#txtOrgCity').val({
source: function (request, response) {
$.ajax({
url: '../lead_hunter.asmx/GetOrgCity',
method: 'post',
contentType: 'application/json;charset=utf-8',
data: JSON.stringify({ url: "http://srv3.testsrv.com/homepage", user: "testuser@testsrv.com" }),
dataType: 'json',
success: function (data) {
response(data.d);
},
error: function (err) {
alert(err);
}
});
当我运行时,它会在文本框中显示 [object object]。
我如何定义在响应(data.d)中为 txtOrgCity 获取城市,为 txtOrgPin 获取 pin,为 txtOrgCountry 获取国家/地区?
我是否需要为其他 2 个文本框或任何更好的方法复制相同的代码?
给定的代码仅适用于一些 txtbox 自动完成,它工作得很好,所以我只是希望它根据我的需要进行一些修改。 $('#txtOrgCity').val 是 $('#txtOrgCity').autocomplete
如有任何帮助,我们将不胜感激。
-- 谢谢
最佳答案
我建议您在谷歌浏览器中打开它。打开您的开发人员工具(按 f12),然后打开资源并选择您当前正在处理的页面。然后使用查找框搜索触发 ajax 的 javascript 方法,并在 ajax 调用的成功部分内放置一个断点。现在运行您的代码并等待到达断点。现在您可以看到 data.d 对象中的内容。不要恢复并继续调试。打开您的控制台选项卡并键入 data.d.
您应该会看到一个智能选项框,其中包含您的 data.d 对象中的所有变量。当您反序列化数据并将其作为 json 返回给您的 ajax 调用时,您应该以您命名它们的任何方式看到城市、pin 和国家/地区的变量。
例如,如果您在控制台中编写 data.d.city
,它应该会写出相应的值。您的服务传递回浏览器的任何其他 json 变量也是如此。
有了这些信息,就可以很容易地使用 jquery 并对数据执行您想要的操作。所以在你的 ajax 调用的成功部分你可以写:
$("#txtOrgCity").val(data.d.city);
$("#txtPin").val(data.d.pin);
$("#txtCountry").val(data.d.country);
附注我正在打电话。
对于您的示例,您不应该将相同的代码再写两次。不要在 jquery .val() 中调用 ajax,这是错误的。创建一个处理您的 ajax 的新函数,从页面加载或您需要的任何地方调用它:
function loadData(//put your user parameter in here if you need){
$.ajax({
url: '../lead_hunter.asmx/GetOrgCity',
method: 'post',
contentType: 'application/json;charset=utf-8',
data: JSON.stringify({ url: "http://srv3.testsrv.com/homepage", user: "testuser@testsrv.com" }),
dataType: 'json',
success: function (data) {
$("#txtOrgCity").val(data.d.city);
$("#txtPin").val(data.d.pin);
$("#txtCountry").val(data.d.country);
},
error: function (err) {
//welldone for handling your error message. Many people neglect this. As a developer that is like coding blindly. At the very least you can console.log(err); if you don't want the user to see
alert(err);
}
});
}
关于javascript - asp.net webservice jquery填充文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42633824/