jQuery代码:$(document).ready(function(){
        //获取项目下拉框的值(项目编号)
        var ddlxm=$("#<%=drpXMName.ClientID %>");
        ddlxm.change(function(){
             $.post(
               "../ajax/GetHTByObjHandler.ashx",
               {xmNumber:$('#<%=drpXMName.ClientID %> option:selected').val()},
               function(results){
                    $("#divht").val(results);                          
               }),"html";
        })
    })Haddler里面的代码: context.Response.ContentType = "text/html";        //读取传过来的项目
        string xmNumber = context.Request.QueryString["xmNumber"];
        HTBLL bll = new HTBLL();        IList<Tb_HTInfo> list = bll.GetHTMessageByObjNumber(xmNumber);
        StringBuilder sd = new StringBuilder();
        sd.Append("<select id=\"ddlHT\"> runat=\"server\"");
        sd.Append("<option value=\"--请选择--\"  selected=\"selected\">--请选择--</option>");
        if (list.Count > 0)
        {
            for (int i = 0; i < list.Count; i++)
            {
                sd.Append("<option value=\""+list[i].Ht_HTnumber+"\"  selected=\"selected\">"+list[i].Ht_HTName+"</option>");
            }
        }
        sd.Append("</select>");
        context.Response.Write(sd);为什么第一次会触发下拉框的change事件并且进入到Haddler里面,可是只会进入一次?后面就不再触发change事件了?是怎么回事?还是说一般不用change事件来实现这个功能?那用哪个事件?求高手,在线等

解决方案 »

  1.   

     
    调试一下JS看看  alert能弹出来么
      

  2.   

    第一次弹出正确的结果,第二次就没反应了。什么也没有,Haddler调试也不进去
      

  3.   

    js调错的话,只能用alert一点一点地弹出慢慢调吧!
      

  4.   

    那为什么第一次调试的时候可以进入到Haddler里面?而第二次调试的时候都不进入Haddler?
      

  5.   


     string xmNumber = context.Request.QueryString["xmNumber"];
    会不会是这个原因啊,应该是
     string xmNumber = context.Request["xmNumber"];
    因为你这个是POST
      

  6.   

    不是这个原因,有人说把ddlxm.change方法单独拿出来,但是我不知道怎么写
      

  7.   

    忘了在哪里看到过,也许早期版本的jquery有这个问题。把change改成.bind('change', function()试试看