asp.net mvc3 这样写为何select为啥一直选不中想要的值

44ggg 2014-02-15 06:33:33
中为啥select根据后台传来的值使用javascript选中为啥一直选不中
页面的代码:
@if ("basic"==@ViewBag.module)
{
<script type="text/javascript">
var selects = document.getElementById('MsgType');
selects[0].selected = true;//选中
</script>
}
@if ("news"==@ViewBag.module)
{
<script >
var selects = document.getElementById('MsgType');
selects[1].selected = true;//选中
</script>

}
@if ("music" == @ViewBag.module)
{
<script >
var selects = document.getElementById('MsgType');
selects[2].selected = true;//选中
</script>
}
@if ("userapi" == @ViewBag.module)
{
<script >
var selects = document.getElementById('MsgType');
selects[3].selected = true;//选中
</script>
}
<th><label for="">回复类型</label></th>
<select id="MsgType" class="sel span6" onchange="showMsgTypeTips();" name="MsgType">
<option value="basic" >基本文字回复</option>
<option value="news" >基本混合图文回复</option>
<option value="music" >基本语音回复</option>
<option value="userapi" >自定义接口回复</option>
</select>
后台: ViewBag.module = Session["module"].ToString();
...全文
138 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
44ggg 2014-02-16
  • 打赏
  • 举报
回复
不好意思,没在线。
泡泡鱼_ 2014-02-15
  • 打赏
  • 举报
回复
两种方法供你参考,我没用过mvc框架,反正大致意思就是那个,不符合写法的话自己调整吧 第一种方法适用于:类似使用ajax返回的某个局部的完整html时,为免解析内部js脚本 第二种方法适用于像你的例子中这样常规的赋值 PS:LZ你这结贴率,再这么下去当心没人回你了喔
泡泡鱼_ 2014-02-15
  • 打赏
  • 举报
回复
这代码给写的.... 第一种:植入型
//后台定义个方法:
private string SetMsgType(int idx)
{
    string[] types = new string[4] { "basic", "news", "music", "userapi" };
    return (Session["module"].ToString() == types[idx]) ? " selected=\"true\"" : "";
}
视图:
<select id="MsgType" class="sel span6"  onchange="showMsgTypeTips();" name="MsgType">
    <option value="basic"<%=SetMsgType(0) %>>基本文字回复</option>
    <option value="news"<%=SetMsgType(1) %>>基本混合图文回复</option>
    <option value="music"<%=SetMsgType(2) %>>基本语音回复</option>
    <option value="userapi"<%=SetMsgType(3) %>>自定义接口回复</option>
</select>
第二种:js选中
<select id="MsgType" class="sel span6"  onchange="showMsgTypeTips();" name="MsgType">
    <option value="basic">基本文字回复</option>
    <option value="news">基本混合图文回复</option>
    <option value="music">基本语音回复</option>
    <option value="userapi">自定义接口回复</option>
</select>  
<script type="text/javascript">
       document.getElementById('MsgType').value = '<%=Session["module"].ToString()%>';//选中
</script>
yyl8781697 2014-02-15
  • 打赏
  • 举报
回复
把判断语句中生成的javascript放在select 标签的后面,因为在执行你的javascript的时候select标签还是还没有加入到dom元素里面,javascript并无法获取该id

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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