如题,在页面中有一个checkbox和一个textbox,我想当checkbox勾上的时候textbox可以输入,不勾的时候就readonly, 如何利用javascript实现?(checkbox 不是服务器控件 )

解决方案 »

  1.   

    <script type="text/javascript">
            $(document).ready(function () {            $("#ckbox").click(function () {
                    if ($("#ckbox").attr("checked")) {
                        $("#txt").attr("readonly", "readonly");
                    }
                    else {
                        $("#txt").removeAttr("readonly");
                    }
                });
            });
        </script>
      

  2.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="_20120301_Default5" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>    <script src="../jquery-1.3.2-vsdoc.js" type="text/javascript"></script>
        
        <script type="text/javascript">
            $(function(){
                $("#Checkbox1").click(function(){
                    if($(this).attr("checked") == true)
                    {
                        $("#Text1").attr("readonly","readonly");
                    }
                    else
                    {
                        $("#Text1").attr("readonly","");
                    }
                });
            });
        </script>
        
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Checkbox1" type="checkbox" />
            <input id="Text1" type="text" />
        </div>
        </form>
    </body>
    </html>
      

  3.   

    这个,2楼给的反了
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="_20120301_Default5" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>    <script src="../jquery-1.3.2-vsdoc.js" type="text/javascript"></script>
        
        <script type="text/javascript">
            $(function(){
                $("#Checkbox1").click(function(){
                    if($(this).attr("checked") == true)
                    {
                        $("#Text1").attr("readonly","");
                    }
                    else
                    {                    
                        $("#Text1").attr("readonly","readonly");
                    }
                });
            });
        </script>
        
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Checkbox1" type="checkbox" />
            <input id="Text1" type="text"  readonly="readonly"/>
        </div>
        </form>
    </body>
    </html>
      

  4.   


    不用JQuery,用JS的方法
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="_20120301_Default5" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>    <script type="text/javascript">
           function testFunc()
           {
               if(document.getElementById("Checkbox1").checked == true)
               {
                    document.getElementById("Text1").readOnly = false;                   
               }
               else
               {
                    document.getElementById("Text1").readOnly = true;                   
               }
               
           }
        </script></head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Checkbox1" type="checkbox" onclick="testFunc();" />
            <input id="Text1" type="text" readonly="readonly" />
        </div>
        </form>
    </body>
      

  5.   

    因为我的textbox的值需要后台处理,所以我的textBox是服务器控件,以上方法实现不了啊......
      

  6.   

    不都是一样么, document.getElementById("Control ID").readOnly 在byID,的时候用的是控件ID,js是可以获取到的啊.
    如果不用js,就用后台事件嘛!!!!checkbox的onchanged事件咯
      

  7.   


    服务器控件也可以用ID取得的$("#<%=textBox.ClientID%>").attr("readonly","readonly");要注意的是,要放在aspx或者ascx中才可以。
      

  8.   

    这是jquery的用法吧?我只想用js实现,没有引入jquery的库
      

  9.   

    $("checkbox").click(function(){
    if($(this).attr("checked"))
    {
    $("textbox").attr("readonly","readonly");
    }
    else
    {
    $("textbox").removeAttr("readonly");
    }
    });
      

  10.   

    1、2、3 楼的方法都是可以的 只需要把 document.getElementById("Text1") 改成  
    document.getElementById("<%= Text1.ClientID%>")就可以了checkbox 取id也是一样<asp:TextBox runat="server" id="Text1" />
      

  11.   


    HTML页面
    <asp:CheckBox runat="server" ID="ckbox" onclick="cbClick()"/>    <asp:TextBox runat="server" ID="txt"></asp:TextBox>function cbClick() {
                if (document.getElementById("<%=ckbox.ClientID%>").checked) {
                    document.getElementById("<%=txt.ClientID%>").readOnly = true;
                }
                else {
                    document.getElementById("<%=txt.ClientID%>").readOnly = false;
                }
            }
      

  12.   


    服务器近件有什么不同吗?Jquery获取服务器控件 $("[id$=控件的ID]")JS获取document.getElementById("<%=控件的ID.ClientID%>")