2009-09-28 68 views
0

有沒有辦法獲得服務器在客戶端填充(使用ASP.NET)的選擇框的選定值(或文本或索引)?我嘗試了$(「#ID」)。val() - 但唯一有效的時間是當我繼續到另一個頁面,然後返回。即使這樣,返回的值也是以前選擇的值 - 如果用戶更改了選擇,它將不會被註冊,除非它們離開頁面並返回。對我來說很容易,我是新的...如何使用jQuery訪問動態構建的選擇框的選定值?

更新:嘗試使用正常的html選擇,同樣的問題(只是與填充條目)。讓我詳細說明我要做的事情:在單獨的頁面中,我將獲得自動完成搜索框的結果。選擇框用於過濾器。當然,如果用戶選擇過濾器,我不想建議不再有效的項目。我正在尋找包含自動完成信息的頁面的ProcessRequest方法中的鍵。

public override void ProcessRequest(HttpContext context) 
    { 
     string respString; 
     string qsKey = "q"; 
     Customer searchCust = Session[Data.Selected_Customer] as Customer; 
     Dictionary<string, string> qsDict = context.Request.QueryString.ToDictionary(qsKey); 

我不應該得到的結果(例如「& ID =富」的最後一行@ context.Request.QueryString?

+0

我是否正確理解這一點 - 您正在JavaScript中創建一個包含選定值的新URL?如果這是正確的,你可以發佈創建URL的確切javascript以及定義你的select元素的標記,因爲它是由ASP.NET輸出的 – 2009-09-28 20:44:35

回答

1

如果你想實際選擇的項目本身:

$("#ID option:selected"); 
+0

如果您想要當然值,您還需要添加.text()。 – 2009-09-28 20:18:04

+0

有進展 - 現在網址是「&ID =」(使用.text())而不是「&ID = null」 - 任何想法? – lonehunter01 2009-09-28 20:21:35

+0

我只是跑了一個測試,它爲我工作得很好。你是否在#中包含元素的id?例如:$(「#myElementId option:selected」)。text(); – DennyFerra 2009-09-28 21:21:24

0

你確定「ID」是真正的ID ?選擇框已經一段時間,因爲我用asp.net但我記得它與標識符打亂了很多

+0

#ID是填充符,但是當我查看頁面時名稱和id都是正確的資源。 – lonehunter01 2009-09-28 20:16:10

0

我使用的代碼(是低)來操作ASP.NET生成的選擇框。在代碼中,我獲得原始選擇框(項目)的值。還要考慮使用.text()函數。

var setValue = function(item){ 
     //if value isn't already selected, postback 
      if(input.value != item.text()) 
       if(select.attr('onchange')) 
        eval(select[0].attributes['onchange'].nodeValue); 

      //set input box value 
      $(input).val(item.text()); 
      $(input).removeClass('empty'); 

      //select original ASP.NET select value (hidden) 
      select.val(item.text()); 

      $(lookup).hide(); 

      //show type if present 
      $('.selectType').show(); 
    }; 

希望這會有所幫助。

相關問題