2011-10-04 37 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。

相关问题