2011-10-04 52 views
0

我想根據這個值我怎樣才能改變選擇的下拉列表中值動態

<html> 
    <head> 
     <script> 
      function change() 
      { 
       var value = document.getElementById('text').value; 
       document.getElementById("Model").selectedvalue = value 
      } 
     </script> 
    </head> 
    <body> 
     <asp:DropDownList ID="Model" AutoPostBack="false" runat="server" CssClass="styled"> 
      <asp:ListItem Value="None">None</asp:ListItem> 
      <asp:ListItem Value="Enum">Enum</asp:ListItem> 
      <asp:ListItem Value="Sum">Sum</asp:ListItem> 
      <asp:ListItem Value="Multi">Multi</asp:ListItem> 
      <asp:ListItem Value="Xaxis">Xaxis</asp:ListItem> 
     </asp:DropDownList> 
     <input id="text" type="text"/> 
     <input type="button" onclick="change();"/> 
    </body> 
<html> 

回答

0

您需要更改document.getElementById("Model").selectedvalue=valyedocument.getElementById("<% = Model.ClientID %>").options.value=valye

挑選從文本框中的值,然後改變下拉列表的值
+0

這兩者之間的區別是什麼? :? –

+1

模型是asp控件,它的id不會是靜態的,但會根據頁面控件層次結構生成。 Model.ClientID將給出下拉的實際ID。投票時請給出理由 – hungryMind

0

您可以使用jQuery使用容易做到這一點下面的代碼

function change() 
    { 
     $("#Model option[value='"+ $('#text').val()+"']").attr('selected', 'selected');  
    } 
0

你的代碼將永遠找不到的型號,如果您使用的是.NET 4,你可以添加

CLientIdMode="Static" 

到您的下拉列表

<asp:DropDownList ID="Model" AutoPostBack="false" runat="server" ClientIdMode="Static" CssClass="styled"> 
     <asp:ListItem Value="None">None</asp:ListItem> 
     <asp:ListItem Value="Enum">Enum</asp:ListItem> 
     <asp:ListItem Value="Sum">Sum</asp:ListItem> 
     <asp:ListItem Value="Multi">Multi</asp:ListItem> 
     <asp:ListItem Value="Xaxis">Xaxis</asp:ListItem> 
    </asp:DropDownList> 

這意味着你的

document.getElementById("Model").selectedvalue = value 

現在會找到控件

0

you mus未寫這樣的:

document.getElementById("Model").value = value; 

,而不是你行:

document.getElementById("Model").selectedvalue = value; 

更多了,如果你使用的是母版頁@hungryMind答案也是正確的,因爲 在JavaScript中有.value的沒有。的SelectedValue。

相關問題