把判断语句中生成的javascript放在select 标签的后面,因为在执行你的javascript的时候select标签还是还没有加入到dom元素里面,javascript并无法获取该id

解决方案 »

  1.   


    这代码给写的....
    第一种:植入型
    //后台定义个方法:
    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>
      

  2.   

    两种方法供你参考,我没用过mvc框架,反正大致意思就是那个,不符合写法的话自己调整吧
    第一种方法适用于:类似使用ajax返回的某个局部的完整html时,为免解析内部js脚本
    第二种方法适用于像你的例子中这样常规的赋值
    PS:LZ你这结贴率,再这么下去当心没人回你了喔