make field readonly - checkbox - jQuery

时间:2011-09-14 16:01:30

标签: jquery html checkbox

我有这个复选框:

<input type="checkbox" name="suspended" id="s" value="<?php echo $udata['suspended']; ?>" <?php echo $suspended; ?>>

这个textarea:

<textarea name="suspendreason" id="sr" style="height:60px" class="field"><?php echo $udata['suspendreason']; ?></textarea>

我的问题是,每当#s复选框未选中时,如何才能使textarea READONLY?

5 个答案:

答案 0 :(得分:10)

根据您的要求,可以这样:

$(document).ready(function(){
    if($('#s:checked').length){
        $('#sr').attr('readonly',true); // On Load, should it be read only?
    }

    $('#s').change(function(){
        if($('#s:checked').length){
            $('#sr').attr('readonly',true); //If checked - Read only
        }else{
            $('#sr').attr('readonly',false);//Not Checked - Normal
        }
    });
});

答案 1 :(得分:6)

我建议将其设为只读和禁用。

$("#sr").attr('disabled', 'disabled');
$("#sr").attr('readonly', 'readonly');

只是因为如果有人处于Carat Browsing模式,很少见,但是我有客户这样做,他们可以编辑禁用的字段。

对于复选框:

<script type="text/javascript">
    $(document).ready(function () {
        // check upon loading
        if(!$("#s").is(:checked))
        {
           $("#sr").attr('disabled', 'disabled');
           $("#sr").attr('readonly', 'readonly');
        }

        // event
        $("#s").change(function () {
           if(!$(this).is(:checked)) {
           {
              $("#sr").attr('disabled', 'disabled');
              $("#sr").attr('readonly', 'readonly');
           }
           else
           {
              $("#sr").attr('disabled', '');
              $("#sr").attr('readonly', '');
           }
         }
      });
</script>

答案 2 :(得分:2)

$(document).ready(function() {
    $("#s").change(function() {
        if (!this.checked) {
            $("#sr").attr('disabled', 'disabled');
            $("#sr").attr('readonly', 'true');
        }
        else {
            $("#sr").removeAttr('disabled');
            $("#sr").removeAttr('readonly');
        }
    });

    //triger change event in case checkbox checked when user accessed page
    $("#s").trigger("change")
});

工作演示 - http://jsfiddle.net/cc5T3/1/

答案 3 :(得分:1)

$("input[type=checkbox][checked]").each( 
    function() { 
      $("#sr").attr("disabled", "disabled")
    } 
);

答案 4 :(得分:-1)

你可以禁用=“禁用”