asp.net webservice jquery填充文本框

时间:2017-03-06 19:18:41

标签: javascript c# jquery asp.net web-services

我想通过提供当前URL和当前用户从Web服务获得3个值。我的webservice接受2个参数URL和用户。 Web服务工作正常。

现在我想使用jquery.in txtOrgCity = city,在txtPin = pin,txtCountry = country

中将这3个值放在3个不同的文本框中

bellow是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);
                        }
                    });

当我运行它时,在文本框中给我[对象对象]。

如何定义为txtOrgCity获取City,为txtOrgPin定位,为响应(data.d)中的txtOrgCountry获取国家/地区。?

我是否需要为其他2个文本框或更好的方法复制相同的代码。?

鉴于代码仅适用于某些txtbox自动完成,并且它完美运行,所以我只是想让它根据我的需要进行修改。 $('#txtOrgCity')。val是$('#txtOrgCity')。autocomplete

任何帮助都将不胜感激。

- 感谢

3 个答案:

答案 0 :(得分:1)

而不是$('#txtOrgCity')。val({})

在.ready函数中首先进行AJAX调用。 存储d.OrgCity,d.OrgPin& d.OrgCountry转换为一些本地JavaScript变量。在Ajax调用成功中,使用这些值存入文本框,如

$( '#txtOrgCity')。VAL(d.OrgCity)

答案 1 :(得分:1)

我建议您在Google Chrome中打开它。打开开发人员工具(按f12键),打开资源并选择当前正在处理的页面。然后使用查找框搜索您的javascript方法,该方法触发ajax并在ajax调用的成功部分中放置一个断点。现在运行您的代码并等待达到断点。现在,您可以看到data.d对象中的内容。不要恢复并继续调试。打开控制台选项卡并键入data.d.,您应该看到一个包含data.d对象中所有变量的intelicence选项框。当您反序列化数据并将其作为json返回到ajax调用时,您应该以任何方式查看city,pin和country的变量。

例如,如果您在控制台中编写data.d.city,则应写出相应的值。对于您的服务传递回浏览器的任何其他json变量,情况也是如此。

使用该信息,使用jquery并使用数据执行所需操作非常容易。所以在你的ajax调用的成功部分你可以写:

 $("#txtOrgCity").val(data.d.city);
 $("#txtPin").val(data.d.pin);
 $("#txtCountry").val(data.d.country);

P.S。我正在写电话。

对于您的示例,您不应再写两次相同的代码。不要在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);
                    }
                });
 }

答案 2 :(得分:0)

你是在JSON.stringify()之后。所以你指定你的.val()你想要.val(JSON.stringify());