我在ASP.NET c#上工作。我有一个DropDownList。 (RUNAT = “服务器”)
在$(document).ready上,我更新了它的值:
/usr/local/rbenv/shims
/usr/lcoal/rbenv/bin
当我回到服务器(c#)时,ddl中没有值:
$(document).ready(function () {
document.getElementById("ddl").value = "abc";
…
可能是什么问题?
谢谢,
YYY
答案 0 :(得分:1)
至于你的dropdown runat =“server”它已经生成了ClientID,“ddl”它是服务器端id,在客户端你需要调用如下所示
document.getElementById("<%= ddl.ClientID %>").value = "abc";
答案 1 :(得分:1)
欢迎来到WebForms的精彩世界:在这个框架搞砸的东西列表中,你的runat =“server”元素的ID是 当引擎处理您的服务器标记时,它会根据您声明该特定元素的位置生成自己的ID。在您的浏览器devtools中查看它。
幸运的是,自 ASP.NET 4 以来,您可以指定特殊属性 ClientIDMode ,现在您可以像
那样执行此操作<asp:TextBox ID="txt" runat="server" ClientIDMode="Static" />
将呈现为
<input id="txt" name="ctl00$MasterPageBody$ctl00$txt" />
如果由于某些原因无法使用ASP.NET 4,您可以坚持使用@Dan建议的旧解决方案:
document.getElementById("<%= ddl.ClientID %>")
但这不是推荐的方式。
修改强>
可能你应该ddl.SelectedItem.Value
代替。