请问javascript中获取选中的DropDownList的值?

xiaozi141 2009-09-30 03:29:14
我获取DropDownList2的当前选中值,但是追踪的时候,eSectionValue是undefine,请问是为什么,语句错了??
var eSection=document.getElementById("DropDownList2");
var eSectionValue=eSection.options[eSection.selectedIndex].value;
var url="Ajax/aEmployee.aspx?+eSection="+eSectionValue;
...全文
442 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruhig 2010-09-25
  • 打赏
  • 举报
回复
sdsdsdsdsdfsdfsdf
zhangronghua309 2010-02-25
  • 打赏
  • 举报
回复
因为DropDownList是服务端控件(有runat='server'),而JavaScript是客户端脚本,也就是说你要通过客户端ID(生成HTML页面右键源代码下的ID)来获取该控件,所以你应该使用document.getElementById('<%=DropDownList2.ClientID%>'),只有这样,才可以获取到这个服务端控件,虽然可能在一定程度上,这个<%=DropDownList2.ClientID%>就是DropDownList2,但是在自定义控件等情况下,这两者还是不等的。至于前面所说的乱码则是通过传入的时候使用HttpUtility.UrlEncode重新编码,最后取出来的时候使用HttpUtility.UrlDecode解码就可以了。
namhyuk 2009-09-30
  • 打赏
  • 举报
回复
有个用encodeURIComponent的例子, 两个aspx

//Default.aspx

<head runat="server">
<title></title>
<script type="text/javascript">
function btnInvokeGet_onclick() {

var wRequest = new Sys.Net.WebRequest();

wRequest.set_url("GetTarget.aspx?Name=" + encodeURIComponent($get("tbName").value));

wRequest.add_completed(onWebRequestCompleted);

wRequest.invoke();
}
function onWebRequestCompleted(executor, eventArgs) {
resultElement.innerHTML = executor.get_responseData();
}

</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<input type="text" id="tbName" />
<input type="button" value="Get" onclick="return btnInvokeGet_onclick()" />
</div>

<hr />

<div id="resultElement"></div>
</form>
</body>

//GetTarget.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.Write(HttpUtility.HtmlEncode(string.Format("Hello, {0}", Request.QueryString["Name"].ToString())));
Response.End();
}
ReyZhang 2009-09-30
  • 打赏
  • 举报
回复
var eSection=document.getElementById("<%=DropDownList2.ClientID%>");
var eSectionValue=eSection.options[eSection.selectedIndex].value;
var url="Ajax/aEmployee.aspx?+eSection="+eSectionValue;
namhyuk 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xiaozi141 的回复:]
encodeURIComponent(eSectionValue)貌似不行

[/Quote]
那应该是有ScriptManager的asp.net ajax里才能用的吧.
xiaozi141 2009-09-30
  • 打赏
  • 举报
回复
encodeURIComponent(eSectionValue)貌似不行
namhyuk 2009-09-30
  • 打赏
  • 举报
回复
encodeURIComponent()可能是asp.net ajax框架里的扩展方法. 也许吧, 这个不太清楚.

你不Decode试试呗.
xiaozi141 2009-09-30
  • 打赏
  • 举报
回复
用encodeURI和UrlDecode,是这样吗?
var eSection=document.getElementById("DropDownList2").value;
var url="Ajax/aEmployee.aspx?+eSection="+eSection;
url=encodeURI(url);
那后台的Request.QueryString["eSection"]怎么改??
UrlDecode(Request.QueryString["eSection"])??
namhyuk 2009-09-30
  • 打赏
  • 举报
回复
如果加了ScriptManager,

... encodeURIComponent(eSectionValue)试试
Iovswety 2009-09-30
  • 打赏
  • 举报
回复
DropDownListObj = document.getElementById(DropDownListID)
for(i = 0;i<DropDownListObj.options.length;i++)
{
if(DropDownListObj.options[i].selected)
{
SeleTextObj.value = DropDownListObj.options[i].text
return true
}
}
HDNGO 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiaozi141 的回复:]
var url="Ajax/aEmployee.aspx?+eSection="+eSectionValue传的值是中文,但是到了后台resquest.querystring接受的时候是乱码,怎么办??
[/Quote]

HttpUtility.UrlEncode
HttpUtility.UrlDecode
HDNGO 2009-09-30
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode
HttpUtility.UrlDecode
namhyuk 2009-09-30
  • 打赏
  • 举报
回复
document.getElementById("DropDownList2").value就行了.

asp.net ajax的话
$get("DropDownList2").value

对了,你怎么不用document.getElementById('<%= DropDownList2.ClientID %>').value这种形式?

至于选取文本,你那个应该是对的, 先取得index, 然后xxx.options[index].text
xiaozi141 2009-09-30
  • 打赏
  • 举报
回复
var url="Ajax/aEmployee.aspx?+eSection="+eSectionValue传的值是中文,但是到了后台resquest.querystring接受的时候是乱码,怎么办??
HDNGO 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liutong123 的回复:]
因为dropdownlist是服务器控件而js是客户端事件,所以如果要取他的值比较复杂,推荐一篇文章:http://www.cnblogs.com/myself/archive/2007/11/10/955392.html,楼主可以看看,或许有所帮助
[/Quote]

解析到前台不都是客户端的?HTML的东西还那么多的花头?
liutong123 2009-09-30
  • 打赏
  • 举报
回复
因为dropdownlist是服务器控件而js是客户端事件,所以如果要取他的值比较复杂,推荐一篇文章:http://www.cnblogs.com/myself/archive/2007/11/10/955392.html,楼主可以看看,或许有所帮助
  • 打赏
  • 举报
回复
document.getElementByID("DropDownList2").value

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧