none
jquery 为服务器端控件赋值怎么做??? RRS feed

答案

  • 我弄错了。

    alert($("#<%=DiningHall.clientID%>"))

    的显示结果是:[object object]




    alert($("#<%=DiningHall.clientID%>").val())
    的显示结果是:“undefined”。

    forfind


        <script language="javascript">


            window.onload = function() {
                var str = "#" + '<%=btnSearch.ClientID %>'
                alert($(str).val());
            }
           
       
        </script>
    </head>
    <body>
        <form   id="form1" runat="server">
        <div>
        <div id="AdvancedSearch">
     <asp:Button ID="btnSearch" runat="server" Text="查询"    CssClass="buttom"
                onclick="btnSearch_Click" />
    </div>

    2010年1月16日 7:34
  •   var textBoxId="#"+'<%=TextBox1.ClientID %>';
               alert($(textBoxId).val());

    这种方式我也测试过了,是正确的。
    我的环境是VS2008+jquery-1.3.2.js
    Microsoft Online Community Support
    2010年1月18日 2:15

全部回复

  • <script language=javascript>
        $(document).ready(
           function aa()
           {
             $("#Textbox1").val("1");
           }
        );
        </script>
    努力+方法=成功
    2010年1月15日 10:03
  • 我是要给一个服务器端控件赋值

    $("#<%=DiningHall.clientID%>").attr("value",kw);
    

    不对

    $("#symbiosis").attr("value",jifen);
    没问题
    forfind
    2010年1月15日 10:07
  • javascript:document.forms[0]['TextBox1'].value=Date();
    document.getElementById(Label1).innerText = sssssd;
    2010年1月15日 10:07
  • <%=DiningHall.clientID%>应该是可以的,你看<%=DiningHall.clientID%>的结果是symbiosis吗

    【孟子E章】
    2010年1月15日 12:06
    版主
  • 是“undefined”。

    以前这样用是可以的。但我这次用的是 jquery ,不知道为什么就不行了
    是不是 jquery 里面另外有其他的定义?我没查到

    forfind
    2010年1月16日 6:50
  • 我弄错了。

    alert($("#<%=DiningHall.clientID%>"))
    的显示结果是:[object object]




    alert($("#<%=DiningHall.clientID%>").val())
    的显示结果是:undefined



    alert(("<%=DiningHall.clientID%>"))
    的显示结果是:<%=DiningHall.clientID%>



    alert($("<%=DiningHall.clientID%>"))
    的显示结果是:[object object]

    forfind
    2010年1月16日 7:25
  • 我弄错了。

    alert($("#<%=DiningHall.clientID%>"))

    的显示结果是:[object object]




    alert($("#<%=DiningHall.clientID%>").val())
    的显示结果是:“undefined”。

    forfind


        <script language="javascript">


            window.onload = function() {
                var str = "#" + '<%=btnSearch.ClientID %>'
                alert($(str).val());
            }
           
       
        </script>
    </head>
    <body>
        <form   id="form1" runat="server">
        <div>
        <div id="AdvancedSearch">
     <asp:Button ID="btnSearch" runat="server" Text="查询"    CssClass="buttom"
                onclick="btnSearch_Click" />
    </div>

    2010年1月16日 7:34
  • 不行,还是“undefined”


    forfind
    2010年1月16日 7:40
  • 不行,还是“undefined”


    forfind

     讨论半天 我们还不知道你这个控件到底是什么?
    2010年1月16日 7:43
  • 我要做一个类似于google、baidu那样的输入显示提示自动完成的功能。

    用到了TextBox,
    <asp:TextBox ID="DiningHall" runat="server" autocomplete="off" ></asp:TextBox>

    输入字符,自动在数据库里模糊查找的结果显示在div里,点选相应项后自动回填回DiningHall

    jquery我第一次用,如果用html控件,功能是没有问题的,就是用了服务器端的控件弄不好。

    function keyup_click(id){
        $("#keyup_d").hide();
        var kw=$("#l_"+id).html();
        var jifen=$("#r_"+id).html();
        //$("#<%=DiningHall.clientID%>").attr("value",kw);
        $("#symbiosis").attr("value",jifen);//这个用的是html控件,就没有问题
        //("<%=DiningHall.clientID%>").value=kw;
       //$("#<%=DiningHall.clientID%>").val(kw);
        //alert($("#<%=DiningHall.clientID%>").val())
        //alert($("#<%=DiningHall.clientID%>"))    
    }
    加注释的全部都不行
    forfind
    2010年1月16日 7:52
  •    var str = "#" + '<%=TextBox1.ClientID %>'
                alert($(str).text());
    2010年1月16日 8:16
  • 空的,什么都不显示


    forfind
    2010年1月16日 9:12
  • 空的,什么都不显示


    forfind

    我怎么测试的都正常 val()方法可以的 你是否没有调用jquery类库
    2010年1月16日 9:21
  • 如果我没有调用jquery类库的话,那为什么
    $("#symbiosis").attr("value",jifen);//这个用的是html控件,就没有问题
    可以呢?

    forfind
    2010年1月16日 9:26
  • 噢,对了,我调用的是 jquery.min.js
    是不是跟这个有关啊?
    我找个全的试试
    forfind
    2010年1月16日 9:27
  • 还是不行啊
    奇怪死了
    forfind
    2010年1月16日 9:40
  • 噢,对了,我调用的是 jquery.min.js
    是不是跟这个有关啊?
    我找个全的试试
    forfind

     你只能在vs2008使用jquery 1.2.6版本 用1.3版本以上 好像不能用
    2010年1月16日 9:41
  • // AutoComplate.js 文件
    
    function so_search(){
        //var kw = $("#kw").val();
        var kw=$("#<%=DiningHall.clientID%>").val();
        var kid = 0;
        var kname=$("#select_kid").html();
        kw = encodeURI(kw);    
        if(kw == ''){
            alert("请输入要查找的关键词");
        }else{                  
            //location.href="search-"+kw+".html";
        
        }    
    }
      
    //关闭搜索提示
    function keyup_close(){
        $("#keyup_d").hide();    
    }
    //
    function keyup_over(id){
        $("#u_"+id).css("background-color","#00c");
        $("#u_"+id).css("cursor","pointer");
        $("#l_"+id).css("color","#fff");
        $("#r_"+id).css("color","#fff");
    }
    function keyup_out(id){
        $("#u_"+id).css("background-color","#fff");
        $("#l_"+id).css("color","#000");
        $("#r_"+id).css("color","#008000");
    }
    //function keyup_click(id){
    //    $("#keyup_d").hide();
    //    var kw=$("#l_"+id).html();
    //     kw = encodeURI(kw);            
    //    location.href="search-"+kw+".html";
    //}
    
    function keyup_click(id){
        $("#keyup_d").hide();
        var kw=$("#l_"+id).html();
        var jifen=$("#r_"+id).html();
        $("#symbiosis").attr("value",jifen);
       // location.href="search-"+kw+".html";
        //$("#<%=DiningHall.clientID%>").attr("value",kw);
        //("<%=DiningHall.clientID%>").value=kw;
       //$("#<%=this.DiningHall.clientID%>").val(kw);
        //alert($("#<%=DiningHall.clientID%>").val("1"))
        //alert($("#<%=DiningHall.clientID%>"))
        $("#<%=this.DiningHall.clientID%>").attr("value",jifen);
    
        
    }
    
    
    function keyup(event,obj){
        if(window.event){
        var key =window.event.keyCode;
        }else{    
         var key =event.which;
        }
    
        if(key!=38&&key!=40&&key!=13){
          
          var kw=$(obj).val();
          var url ="uc/JsonHandler.ashx?kw=" + encodeURI(kw) + "&time=" + new Date().toString();//中文
            $.get(url,function(data){
                if (data!='') {
                    $("#keyup_d").html(data+'<ul class="sokeyup_4"><li id="l_0" style="display:none;"></li><li class="sokeyup_5" onclick="keyup_close()">关闭</li></ul>');
                    $("#keyup_d").show();
                } else {
                    $("#keyup_d").hide();
                }
            }
        );
        }
       
    }
       
    
    var ul_id=0;
    $(window).keydown(function(event){
        if(window.event){
            var key =window.event.keyCode;
        }else{
             var key =event.which;
        }
        
        if (key==13) {
    
            if (searchFocus == true) {
                
            }
        }
        
        
        var ulcount=$("#keyup_d ul").size()-1;
        if($("#keyup_d").css("display")=="block"){
            //向上
            $("#l_0").html($("#<%=DiningHall.clientID%>").val());
            if(key==13) {
                if ($("#<%=DiningHall.clientID%>").val()!= "") {
                    so_search();
                }
            }
            if (key==38) {
                
                ul_id--;
                if(ul_id<0){
                    ul_id = ulcount;
                    keyup_over(ul_id);
                    
                    
                }else{
                
                    keyup_out(ul_id+1);
                    keyup_over(ul_id);
                    
                
                }
                $("#<%=DiningHall.clientID%>").val($("#l_"+ul_id).html());
                return false;
                
            }
            //向下
            if (key==40 ) {
                $("#l_0").html($("#<%=DiningHall.clientID%>").val());
                ul_id++;
                if(ul_id>ulcount){
                    ul_id=0;
                    keyup_out(ulcount);
                }else{
                
                    keyup_out(ul_id-1);
                    keyup_over(ul_id);
                    
                    
                }
                $("#<%=DiningHall.clientID%>").val($("#l_"+ul_id).html());
                return false;
            }
        }
    });
    
    
    



    //JsonHandler.ashx





    <%@ WebHandler Language="C#" Class="JsonHandler" %> using System; using System.Web; using System.Data.SqlClient; using System.Data; public class JsonHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string Key = context.Request["kw"]; if (Key !=null&&Key!="") { SqlConnection con = new SqlConnection("server=ft009;database=Integral;uid=sa;pwd=sa;"); con.Open(); //string str = "select distinct restaurant,symbiosis from Restaurant where (restaurant like @kw or kw like @kw) order by restaurant"; string str = "select distinct r.restaurant,case r.mode when 0 then cast(g.jifen as varchar(10))+'分'+'/次' when '1' then cast(g.jifen as varchar(10))+'分'+'/人' end as jifen from Restaurant r,guize g where (r.restaurant like @kw or r.kw like @kw) and r.guize=g.[id] order by r.restaurant"; SqlCommand com = new SqlCommand(str, con); com.Parameters.Add("@kw", SqlDbType.NVarChar).Value = "%"+ Key + "%"; SqlDataReader sdr = com.ExecuteReader(); string htmlstr = ""; int i = 1; while (sdr.Read()) { string kword = sdr[0].ToString(); string a = sdr[1].ToString(); htmlstr += "<ul class='sokeyup_1' onmouseover='keyup_over(" + i + ")' onmouseout='keyup_out(" + i + ")' onclick='keyup_click(" + i + ")' id='u_" + i + "'>"; htmlstr += "<li class='sokeyup_2' id='l_" + i + "'>" + kword + "</li>"; htmlstr += "<li class='sokeyup_3' id='r_"+ i +"'>" + a + "</li></ul>"; i++; } context.Response.Write(htmlstr); context.Response.End(); sdr.Close(); con.Close(); } } public bool IsReusable { get { return false; } } }





    <%--OrderInfo.ascx--%>

    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript" src="../js/AutoComplate.js"></script>
    <link href="../css/AutoComplate.css" rel="stylesheet" type="text/css" />

    <table> <tr onclick="keyup_close();"> <th> <span class="star">* </span>餐厅:</th> <td> <%--<asp:TextBox ID="DiningHall" runat="server"></asp:TextBox>--%> <iframe style="display: none" id="if_keyup" name="if_keyup"></iframe> <%--<input id="kw" name="kw" class="h_15" onkeyup="keyup(event)" autocomplete="off" />--%> <asp:TextBox ID="DiningHall" runat="server" autocomplete="off" ></asp:TextBox> <div style="display: none" id="keyup_d" class="sokeyup"></div> <br /> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="DiningHall" Display="Dynamic" ErrorMessage="必填字段" ValidationGroup="mm"></asp:RequiredFieldValidator></td> <th> 合作类型:</th> <td> <input id="symbiosis" name="symbiosis" class="h_15" /> </td> </tr> </table>


    'OrderInfo.ascx.vb Protected Sub page_init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init DiningHall.Attributes.Add("onkeyup", "keyup(event,this)") End Sub

    /*AutoComplate.css*/ ul{padding:0;list-style:none;margin:0;height:52px;font-size:12px;} li{padding:0;margin:0;list-style:none;} .h_14{text-align:left;float:left;padding:2px;line-height:26px;height:26px;width:270px; vertical-align:middle;overflow:hidden;} .h_15{padding:4px 0 0 0;width:240px;height:20px;line-height:20px;display:block;float:left;vertical-align:middle;} .h_16{width:57px;float:left;height:32px;overflow:hidden;cursor:pointer;} .sokeyup{z-index:9999;border:solid 1px #f60;background:#fff;position:absolute;display:none;clear:both;overflow:hidden;} .sokeyup_1,.sokeyup_2,.sokeyup_3,.sokeyup_4,.sokeyup_5 {height:20px;line-height:20px;} .sokeyup_1{padding:0 3px;clear:both;overflow:hidden;} .sokeyup_2{width:180px;float:left;color:#4c4c4c;} .sokeyup_3{width:80px;text-align:right;float:right;color:#008000;} .sokeyup_4{padding:0 4px;background:#f0f0f0;} .sokeyup_5{float:right;color:#00c;cursor:pointer;text-decoration:underline;}/*关闭*/

    我把代码全贴出来了,拜托,我真的搞不定,不知道错在哪了,谢谢!
    forfind
    2010年1月16日 9:49
  • 你写的很多大部分都有错的
    我不必一个一个解释 那样浪费很多时间
    http://www.open-open.com/ajax/AutoComplete.htm 你去这里挑一个插件就行了

    2010年1月16日 10:01
  • 真那么惨啊?我没改多少东西啊
    我用html的input试时是完全没有问题的,就是textbox不行:(
    好吧,我挑挑看
    forfind
    2010年1月16日 10:04
  •   var textBoxId="#"+'<%=TextBox1.ClientID %>';
               alert($(textBoxId).val());

    这种方式我也测试过了,是正确的。
    我的环境是VS2008+jquery-1.3.2.js
    Microsoft Online Community Support
    2010年1月18日 2:15
  • :(

    为什么
    alert($("#<%=DiningHall.clientID%>"))
    的显示结果是:[object object]

    为什么
    alert(("<%=DiningHall.clientID%>"))
    的显示结果是:<%=DiningHall.clientID%>

    用了jquery,就不能按平时的用法用了吗?

    forfind
    2010年1月18日 7:52
  • :(

    为什么
    alert($("#<%=DiningHall.clientID%>"))
    的显示结果是:[object object]

    为什么
    alert(("<%=DiningHall.clientID%>"))
    的显示结果是:<%=DiningHall.clientID%>

    用了jquery,就不能按平时的用法用了吗?

    forfind

    上面是获取对象  下面是解释成字符串了
    2010年1月18日 8:04