解决方案 »

  1.   


    矛盾的需求,要点了注册之后又要判断状态让注册这个按钮不能按,按都按完了你再禁止掉有什么用,你是在逗我吗?你为什么不在点checkbox的时候去做这样的事?
      

  2.   

    一句话是不是在注册的时候必须点击那个checkbox阅读接收协议啊?是这个需求吧?
      

  3.   


    您说的对,我这么想确实欠妥当。那么如何在点checkbox的时候去完成效果了?就是说:如果勾选了同意协议,则按钮可以被按下,如果没有勾选同意协议,则按钮无法被按下。
      

  4.   


    说白了我现在就是不太清楚如何判断checkbox是否被选中,如果没有选中,还是可以点击注册按钮的,只不过点击完注册按钮之后会在  “注册”  按钮之后提示:您还未同意用户协议
      

  5.   

    $("#agree").click(function(){
                 if($(this).attr("checked")==true){
                     $("#msg02").hide();//隐藏提示性语言
                     $("#submit").removeAttr("disabled");//如果同意协议,删除disabled属性 ,使按钮可以被按下                
                 }else{
                     $("#msg02").show().insertAfter("#submit");//让提示性语言在“注册”栏之后显示
                     $("#submit").attr('disabled',"true");//如果不同意协议,设置submit属性disabled,使按钮不能被按下
                 }          
             });
    $("#submit").click(function(){
        if(!$('#agree').attr("checked")){
            alert('请先同意协议');
            return false;//阻止按钮默认事件
        }
    })
    另外,刚进页面的时候就要把注册按钮禁用掉。
      

  6.   


    您这是判断什么的?
    判断是否选中
    在点击注册的时候判断是否选中,没选中就显示提示信息阻止提交否则提交您这个我试了,好像不行啊$("#sbumit").click(function(){
              alert(!!$('#agree:checked').length);
              });<s:form>
       <s:checkbox name="agree" label="我已阅读并接受用户协议" id="agree"/>
       <s:submit  value="注册" id="submit"/>
       <font color='red' style="display:none;" id="msg02">您还未接受用户协议!</font>
       </s:form>
      

  7.   

    <!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>
        <title>无标题页</title>
        <script src="jquery-1.7.2.min.js" type="text/javascript"></script> 
        <style type="text/css">
            .disabled { color:Gray; }
            .enabled { color:Blue; }
        </style>
        <script type="text/javascript">
            $(function(){
                //复选框点击事件
                $("#chkAccept").click(function(){
                    setStatus(false);
                });
                
                $("#btnReg").click(function(){
                    setStatus(true);
                });
                //注册按钮点击事件
                function setStatus(isBtn){
                    var isAccept = $("#chkAccept").is(":checked");
                    $("#btnReg").attr("class", isAccept?"enabled":"disabled");
                    $("#spanErrMsg").toggle(!isAccept);
                    
                    if(isAccept && isBtn){
                        reg();
                    }
                }
                
                function reg(){
                    alert("已接受协议,开始注册!");
                    
                    //todo
                }
            });
        </script>
    </head>
    <body>
        <table style="width: 100%;">
            <tr>
                <td>用户名:</td><td><input id="txtUserName" name="UserName" type="text" /></td>
            </tr>
            <tr>
                <td>密码:</td><td><input id="txtPwd" name="Pwd" type="text" /></td>
            </tr>
            <tr>
                <td>确认密码:</td><td><input id="txtConfirmPwd" name="ConfirmPwd" type="text" /></td>
            </tr>
            <tr>
                <td colspan="2" >
                    <input id="chkAccept" name="Accept" type="checkbox" />
                    <label for="chkAccept">我已阅读并接受用户协议</label>
                </td>
            </tr>
            <tr>
                <td colspan="2" >
                    <input id="btnReg" type="button" value="注册" class="disabled" />
                    <span id="spanErrMsg" style="color:Red;">您还未接受用户协议</span>    
                </td>
            </tr>
        </table>
    </body>
    </html>完整代码, 本机测试通过
      

  8.   

    判断复选框是否选中 
    1.   $("#id").attr("checked")
    在jquery 1.6前(含1.6),返回值是boolean类型的true或false;
    在jquery  1.6后,返回值是"checked"或undefined。
    2.   jquery 1.6后dom有变动
    $("#id").prop("checked") 返回值是boolean类型的true或false; 
    3   $("#id")is(":checked") 
    返回 true 或者false  暂时没有发现版本问题