2017-03-06 94 views
1

我想通過提供當前URL和當前用戶從Web服務獲取3個值。我的web服務接受2個參數URL和用戶。 Web服務正常工作。asp.net webservice jquery populate textbox

現在我想把這個3個值在3個不同的文本框中使用jquery.in txtOrgCity =城市,在txtPin =針,在txtCountry =國家

波紋管是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: "[email protected]" }), 
         dataType: 'json', 
         success: function (data) { 
          response(data.d); 

         }, 
         error: function (err) { 
          alert(err); 
         } 
        }); 

時碼我運行它在文本框中給我[對象對象]。

如何定義抓取城市txtOrgCity,針對txtOrgPin,國家txtOrgCountry作爲迴應(data.d)。?

我是否需要爲其他2個文本框或任何更好的方式複製相同的代碼?

給定的代碼只是爲了一些txtbox的自動完成,它的工作原理非常完美,所以我只是想讓它修改一下我的需求。 $('#txtOrgCity')。val是$('#txtOrgCity')。自動完成

任何幫助,將不勝感激。

- 感謝

回答

1

我建議你在谷歌瀏覽器打開此了。打開您的開發人員工具(按f12),打開資源並選擇您當前正在處理的頁面。然後使用查找框來搜索你的javascript方法,它會觸發ajax,並在你的ajax調用的成功部分放置一個斷點。現在運行你的代碼並等待到達中斷點。現在你可以看到你的data.d對象裏面有什麼。不要恢復並繼續調試。打開您的控制檯選項卡並鍵入data.d.您應該看到一個intelicence選項框,其中包含data.d對象中的所有變量。當您反序列化您的數據並將其作爲json返回給您的ajax調用時,您應該以您指定的任何方式查看城市,別針和國家/地區的變量。

例如,如果您在控制檯中編寫data.d.city,則應寫出相應的值。對於任何其他json變量,您的服務都返回給瀏覽器。

有了這些信息,很容易就可以使用jquery並根據數據執行操作。所以在你的阿賈克斯調用的成功部分,你可以寫:

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

p.s.即時消息寫在手機上。

對於你的例子,你不應該再寫出相同的代碼兩次。不要在jQuery中調用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: "[email protected]v.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); 
        } 
       }); 
} 
+0

非常感謝好友......這就像一個魅力......!雖然我沒有得到這個反序列化部分,但我得到了像data.d [0]這樣的數組......並且獲得了我的值。再次感謝。你的電話寫作技巧是gr8。 –

+0

對不起,我的意思是序列化。在C#中,您將一個類的實例序列化爲json,並將該json從您的webservice返回給客戶端。反序列化是將json轉換爲C#類的實例時。你可以在這裏看到一個例子:https://msdn.microsoft.com/en-us/library/bb410770(v=vs.110).aspx(p.s.can你標記我的答案是正確的?) – Harry

0

您是JSON.stringify()之後。所以你指定你的.val()你想.val(JSON.stringify());

+0

所以才改變這一 $(「#txtOrgCity」)VAL({到 $(「#txtOrgCity」 ).val(JSON.stringify());? –

+0

是的,但是你的代碼在stringify中... .val當前的代碼...基本上你當前的代碼顯示的是val:即它是一個對象,你需要一些東西把它顯示爲一個字符串 – Trey

1

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

在你.ready函數使AJAX調用第一。 將d.OrgCity,d.OrgPin & d.OrgCountry轉換爲一些本地JavaScript變量。在Ajax調用成功使用這些值存入文本框狀

$(「#txtOrgCity」)。VAL(d.OrgCity)

+0

我覺得這可以幫助,但我完全是新的JavaScript和jQuery的......你可以幫助 –

+0

$(document).ready(function(){ $ .ajax({ :'POST', async:false, url:'../lead_hu nter.asmx/GetOrgCity', 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.OrgCity); $('#txtOrgPin').val(data.d.OrgPin); $('#txtOrgCountry')。val(data.d.OrgCountry); }}); }); – Sailor

+0

是的,這工作。儘管我讀過哈利的http://stackoverflow.com/users/7619230/harry答案第一。我也喜歡你。 –